小编use*_*030的帖子

Three.js禁用深度测试

我使用的是EffectComposer:

renderer = new THREE.WebGLRenderer();
renderer.setDepthTest(false);
...
composer = new THREE.EffectComposer( renderer);
Run Code Online (Sandbox Code Playgroud)

所以我想禁用深度测试,但是当我这样做时:

composer.render();
var gl = renderer.context;
alert(gl.getParameter(gl.DEPTH_TEST));
Run Code Online (Sandbox Code Playgroud)

值为true而不是false.如何禁用深度测试?

谢谢.

javascript webgl three.js

5
推荐指数
2
解决办法
3480
查看次数

将一个双倍圆到最近且更大的浮点数

我想使用c/c ++将大的双数(> 1e6)舍入到最接近但更大的浮点数.我尝试了这个,但我不确定它是否总是正确的,并且可能有一种最快的方法:

int main() {
    // x is the double we want to round
    double x = 100000000005.0;
    double y = log10(x) - 7.0;
    float a = pow(10.0, y);
    float b = (float)x;

    //c the closest round up float
    float c = a + b;
    printf("%.12f %.12f %.12f\n", c, b, x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

c c++ floating-point rounding

5
推荐指数
1
解决办法
3087
查看次数

对数深度缓冲区

我使用对数深度缓冲区:在我的着色器中,我写了代码描述在这里.

在顶点着色器中:

void main()
{
  vec4 vertexPosClip = gl_ModelViewProjectionMatrix * gl_Vertex;
  gl_Position = vertexPosClip;
  gl_TexCoord[6] = vertexPosClip;
}
Run Code Online (Sandbox Code Playgroud)

在片段着色器中:

void main()
{
  gl_FragColor = ...
  const float C = 1.0;
  const float far = 1000000000.0;
  const float offset = 1.0;
  gl_FragDepth = (log(C * gl_TexCoord[6].z + offset) / log(C * far + offset));
}
Run Code Online (Sandbox Code Playgroud)

现在我的一个算法(SSAO适用于经典的深度缓冲区),我想恢复我的片段的深度.这是我使用的公式:

    const float C = 1.0;
    const float far = 1000000000.0;
    const float offset = 1.0;
//depth
    z=(pow(C*far+offset,depth_in_depth_buffer)-offset)/C;
Run Code Online (Sandbox Code Playgroud)

但是它不起作用,算法不再起作用.你知道我计算的z是否是正确的深度?

opengl 3d glsl

5
推荐指数
1
解决办法
1027
查看次数

可选参数值

我想创建一个带有可选参数的函数,该参数取另一个参数的值.在函数的声明中,以下方法不起作用,但这正是我想要做的:

void function(int a, int b=a)   //error
Run Code Online (Sandbox Code Playgroud)

我尝试将变量b的默认值设置为a的值.最干净的方法是什么?我们可以在不改变功能签名的情况下这样做吗?

c++

4
推荐指数
1
解决办法
143
查看次数

标签 统计

c++ ×2

3d ×1

c ×1

floating-point ×1

glsl ×1

javascript ×1

opengl ×1

rounding ×1

three.js ×1

webgl ×1