Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 透明纹理的网格排序问题(使用alpha通道)_Javascript_Three.js_Glsl_Webgl_Shader - Fatal编程技术网

Javascript 透明纹理的网格排序问题(使用alpha通道)

Javascript 透明纹理的网格排序问题(使用alpha通道),javascript,three.js,glsl,webgl,shader,Javascript,Three.js,Glsl,Webgl,Shader,我们正在尝试在three.js中渲染网格头发 物体排序的常见问题是不允许的,因为头发有大量的部分,我们把相机转过头。物体的顺序是不断变化的 根据不同论文的建议,我们使用以下基于深度的权重函数实现了加权、混合顺序独立的透明度: casual-effects.blogspot.in/2014/03/weighted-blended-order-independent.html 重叠两个透明平面: 基于深度的权重函数: pow( a, 1.0 ) * clamp( 10.0 / ( 1e-5 + p

我们正在尝试在three.js中渲染网格头发

物体排序的常见问题是不允许的,因为头发有大量的部分,我们把相机转过头。物体的顺序是不断变化的

根据不同论文的建议,我们使用以下基于深度的权重函数实现了加权、混合顺序独立的透明度:

casual-effects.blogspot.in/2014/03/weighted-blended-order-independent.html

重叠两个透明平面:

基于深度的权重函数:

pow( a, 1.0 ) * clamp( 10.0 / ( 1e-5 + pow( abs( z2 ) / 5.0, 1.0 ) + pow( abs( z2 ) / 200.0, 1.0 ) ), 1e-2, 3e3 );
阿尔法通道:

float ai = color.a;
vec3 Ci = color.rgb * ai;
gl_FragColor = vec4( Ci, ai ) * w( ai );
[]


<> P>是否有可能引导我找到适当的权重函数的资源,能够正确地使用

备选建议:代替OIT,考虑使用ALPA测试:<代码>如果(Tracel.A<0.5)丢弃;<代码>我们在边缘上遇到了一些问题(1)演示与原始问题有什么关系?(2) 尝试关闭棋盘纹理的mipmapping。实际上,我们正在尝试使用alpha通道的纹理制作体积头发,请参见初始问题中的链接。演示实现了OIT 1)3D不透明曲面到主帧缓冲区2)3D透明度累积到屏幕外帧缓冲区3)主帧缓冲区上的2D合成透明度,但由于没有深度信息,我们无法与重叠的身体和头发耦合。