我使用的ShaderMaterial是默認的Phong着色器(我使用shaderChunk)的完整副本。自定義phong着色器envMap翻轉
我的問題是,envMap
被翻轉X ...
這裏是我所得到的:
而我想:
我試圖訪問cubeCamera.renderTarget.texture
以使用repeat.x = -1
和wrapS = THREERepeatWrapping.RepeatWrapping
但它絕對沒有...
var cubeCamera = new THREE.CubeCamera(0.01, 500, 256);
scene.add(cubeCamera);
var sphereMaterial = new THREE.ShaderMaterial({
uniforms: THREE.UniformsUtils.merge([
THREE.UniformsLib.common,
THREE.UniformsLib.aomap,
THREE.UniformsLib.lightmap,
THREE.UniformsLib.emissivemap,
THREE.UniformsLib.bumpmap,
THREE.UniformsLib.normalmap,
THREE.UniformsLib.displacementmap,
THREE.UniformsLib.fog,
THREE.UniformsLib.lights,
THREE.UniformsLib.shadowmap,
{
emissive: {
type: "c",
value: new THREE.Color(0x000000)
},
specular: {
type: "c",
value: new THREE.Color(0x111111)
},
shininess: {
type: "f",
value: 30
},
envMap: {
type: "t",
value: cubeCamera.renderTarget
}
}
]),
vertexShader: require("../../shaders/phong.vert.glsl"),
fragmentShader: require("../../shaders/phong.frag.glsl"),
blending: THREE.AdditiveBlending,
depthWrite: false,
transparent: true,
opacity: 1,
lights: true
});
sphereMaterial.envMap = true;
編輯:
難道這與[MeshPhongMaterial](https://github.com/mrdoob/three.js/blob/master/src/materials/MeshPhongMaterial.js)在設置很多參數時有什麼關係實例化?也許'this.reflectivity = 1;'。只是我的第一個想法。 – 2pha
不,envMap仍然翻轉horizontaly ... – Jordan
我添加了一個JSFiddle – Jordan