1
0
mirror of https://github.com/troisjs/trois.git synced 2024-11-24 04:12:02 +08:00

add texture encoding

This commit is contained in:
Kevin Levron 2021-04-29 19:42:26 +02:00
parent 7b66f37c09
commit d0a78e8061

View File

@ -1,5 +1,5 @@
import { defineComponent, PropType, watch } from 'vue' import { defineComponent, PropType, watch } from 'vue'
import { ClampToEdgeWrapping, LinearFilter, LinearMipmapLinearFilter, ShaderMaterial, Texture, TextureLoader, UVMapping } from 'three' import { ClampToEdgeWrapping, LinearEncoding, LinearFilter, LinearMipmapLinearFilter, ShaderMaterial, Texture, TextureLoader, UVMapping } from 'three'
import { bindProp } from '../tools' import { bindProp } from '../tools'
import { MaterialInjectionKey, MaterialInterface } from './Material' import { MaterialInjectionKey, MaterialInterface } from './Material'
import { Vector2PropInterface } from '../core/Object3D' import { Vector2PropInterface } from '../core/Object3D'
@ -20,6 +20,7 @@ export default defineComponent({
onLoad: Function as PropType<(t: Texture) => void>, onLoad: Function as PropType<(t: Texture) => void>,
onProgress: Function as PropType<(e: ProgressEvent) => void>, onProgress: Function as PropType<(e: ProgressEvent) => void>,
onError: Function as PropType<(e: ErrorEvent) => void>, onError: Function as PropType<(e: ErrorEvent) => void>,
encoding: { type: Number, default: LinearEncoding },
// format: { type: Number, default: RGBAFormat }, // format: { type: Number, default: RGBAFormat },
mapping: { type: Number, default: UVMapping }, mapping: { type: Number, default: UVMapping },
wrapS: { type: Number, default: ClampToEdgeWrapping }, wrapS: { type: Number, default: ClampToEdgeWrapping },
@ -46,7 +47,7 @@ export default defineComponent({
if (!this.src) return undefined if (!this.src) return undefined
const texture = new TextureLoader().load(this.src, this.onLoaded, this.onProgress, this.onError) const texture = new TextureLoader().load(this.src, this.onLoaded, this.onProgress, this.onError)
// use format ? TextureLoader will automatically set format to THREE.RGBFormat for JPG images. // use format ? TextureLoader will automatically set format to THREE.RGBFormat for JPG images.
const wathProps = ['mapping', 'wrapS', 'wrapT', 'magFilter', 'minFilter', 'repeat', 'rotation', 'center'] const wathProps = ['encoding', 'mapping', 'wrapS', 'wrapT', 'magFilter', 'minFilter', 'repeat', 'rotation', 'center']
wathProps.forEach(prop => { bindProp(this, prop, texture) }) wathProps.forEach(prop => { bindProp(this, prop, texture) })
return texture return texture
}, },