浏览代码

fix possible issue reflectnode with vertex shader

sunag 6 年之前
父节点
当前提交
a19b279b82
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      examples/jsm/nodes/accessors/ReflectNode.js

+ 6 - 1
examples/jsm/nodes/accessors/ReflectNode.js

@@ -3,6 +3,8 @@
  */
 
 import { TempNode } from '../core/TempNode.js';
+import { PositionNode } from './PositionNode.js';
+import { NormalNode } from './NormalNode.js';
 
 function ReflectNode( scope ) {
 
@@ -44,7 +46,10 @@ ReflectNode.prototype.generate = function ( builder, output ) {
 
 			case ReflectNode.VECTOR:
 
-				builder.addNodeCode( 'vec3 reflectVec = inverseTransformDirection( reflect( -normalize( vViewPosition ), normal ), viewMatrix );' );
+				var viewNormal = new NormalNode().build( builder, 'v3' );
+				var viewPosition = new PositionNode( PositionNode.VIEW ).build( builder, 'v3' );
+
+				builder.addNodeCode( 'vec3 reflectVec = inverseTransformDirection( reflect( -normalize( ' + viewPosition + ' ), ' + viewNormal + ' ), viewMatrix );' );
 
 				result = 'reflectVec';