three.js / envmap / renderToTexture /单个纹理

时间:2016-07-22 05:20:06

标签: three.js texture-mapping render-to-texture

我使用envmap创建动画。 一切都按预期工作,但不是在CubeTexture中使用6个图像,我想使用6个动画纹理。

我认为这很明显,但我现在已经好几个小时了,我在任何地方都搜索了很多,但是就像地球上的任何人都没有使用动画纹理作为envMap ...

我发现了一些有关基于单个纹理的SphericalMappingReflection的有趣帖子 - 正是我想要的 - 但是无法找到任何使用示例......

我还检查了Three.js着色器源代码,以了解envMap是如何完成的,我发现了这些行

 #elseENVMAP_TYPE_EQUIREC
     float flipNormal = 1.0;
     #endif

     #ifdef ENVMAP_TYPE_CUBE
     vec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );

     #elif defined(  )
     vec2 sampleUV;
     sampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );
     sampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;
     vec4 envColor = texture2D( envMap, sampleUV );

     #elif defined( ENVMAP_TYPE_SPHERE )
     vec3 reflectView = flipNormal * normalize((viewMatrix * vec4( reflectVec, 0.0 )).xyz + vec3(0.0,0.0,1.0));
     vec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );
     #endif

然后看起来可以使用texture2D而不是textureCube来创建一个envMap,但我没有找到关于如何定义" ENVMAP_TYPE_EQUIREC"的任何提示。或" ENVMAP_TYPE_SPHERE"

你能帮帮我吗? 我对自己的问题感到有些沮丧,并且真的不知道该怎么做。

谢谢!

(请原谅我的英语不完美,不是我的母语)

0 个答案:

没有答案