Webgl / three js着色器错误
webgl / three js shader error
我是来问你关于在三个js中遇到的问题。我尝试做视差映射。
顶点着色器:
varying vec3 v_pos;
varying vec3 v_nrm;
varying vec2 v_txc;
void main(){
v_pos = position;
v_nrm = normal;
v_txc = uv;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);
}
fragment shader:
uniform vec3 camPos;
uniform sampler2D heightMap;
uniform sampler2D textureDiffuse;
uniform float bumpness;
varying vec3 v_pos;
varying vec3 v_nrm;
varying vec2 v_txc;
float ApplyChainRule( float dhdu, float dhdv, float dud_, float dvd_ )
{
return dhdu * dud_ + dhdv * dvd_;
}
vec3 SurfaceGradient( vec3 n, vec3 dpdx, vec3 dpdy, float dhdx, float dhdy )
{
vec3 r1 = cross( dpdy, n );
vec3 r2 = cross( n, dpdx );
float det = dot( dpdx, r1 );
return ( r1 * dhdx + r2 * dhdy ) / det;
}
void main()
{
vec3 wsViewDir = normalize( camPos - v_pos );
vec3 wsNormal = normalize( v_nrm );
vec3 dpdx = dFdx( v_pos );
vec3 dpdy = dFdy( v_pos );
vec2 uv = v_txc;
vec2 duvdx = dFdx( uv );
vec2 duvdy = dFdy( uv );
// here will be the POM code
vec2 dhduv = texture2D( heightMap, uv ).rg;
dhduv = ( dhduv * 2.0 - 1.0 ) * bumpness;
float dhdx = ApplyChainRule( dhduv.x, dhduv.y, duvdx.x, duvdx.y );
float dhdy = ApplyChainRule( dhduv.x, dhduv.y, duvdy.x, duvdy.y );
wsNormal = normalize( wsNormal - SurfaceGradient( wsNormal, dpdx, dpdy, dhdx, dhdy ) );
gl_FragColor = vec4(texture2D( textureDiffuse, uv )+(wsNormal * 0.5 +0.5),1.0);
// here will be the lighting and shading code
}
我有这个错误:
3。WebGLShader: gl.getShaderInfoLog() fragment ERROR: 0:?: "语法错误
我找不到我的错误,你能帮我吗?
谢谢,)
你的意思是:
gl_FragColor = texture2D(textureDiffuse, uv) + vec4(wsNormal * 0.5 + 0.5, 1.0);
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- RxJS:在循环中处理错误.js自定义驱动程序
- 如何在快递中抛出 404 错误.js
- 如何捕获服务器错误 JS
- 帆的“500”错误.js“测试项目”
- 快递中的会话未定义错误.js
- jquery.validate 中的错误.js“javaScript 运行时错误:无法获取未定义或空引用的属性'
- 角度动画中的奇怪错误.js
- 如何删除“对象在节点中没有方法'forEach'错误.js”
- 错误 JS 将发布数据发送到控制器 -CodeIgniter
- 使用摩卡在节点上测试错误.js函数
- 为什么 Magento js/varien/form.js IE 中的错误 - js fiddle
- 检测导致冻结等问题的错误 JS
- 三中的错误.js:相机不是三的实例.照相机
- 编译错误js.72.未处理的错误
- PHP停止表单重新加载显示错误Js
- 节点中的套接字挂断错误.js使用 https 时
- 纹理加载错误(JS动画)
- jasmineNodeOpts:执行量角器时出现意外的标识符错误.js