何时在体积数据中应用phong着色?

时间:2018-09-18 14:28:03

标签: opengl glsl data-visualization volume-rendering

我有一个可以渲染的体积数据集(这是家庭作业的一部分) 我已经使用前后组合实现了光线投射,并且希望集成phong阴影。为了计算梯度,我使用了前向差异法。

我知道我可以使用前向差分法估计体素纹理坐标的梯度。

我的问题是,由于phong阴影返回一种颜色,并且前后光线投射也返回一种颜色,因此何时将阴影应用于ray函数的颜色?在为特定的射线确定新的颜色后还是在从射线命中计算颜色之后? 也许这段代码有助于理解我的问题。我在我应该在什么地方实施phong阴影的地方添加了评论。

void main(){
     if (raycast(t0,t1)) {

        float t = t0;
        for(float t =t0; t<t1;t+=stepsize){
              vec3 p = ray_o + ray_d * t;
              vec3 coord = worldToVolumeCoord(p, min_box, max_box);      
              float s = texture(tex_vol, coord).r;
              vec4 color = texture(tex_tf, s);
              if(color.a > 0){
                  // Front to back , when to apply shading?????
                  C = C + (1-A) * color.a * vec3(color);
                  A = A + (1-A) * color.a;
              }
             // vec3 Gradient = getGradient(tex_vol, coord, stepsize)
             // But how to apply Phong Shading?
        }
        // Apply phong here?
    }
}

0 个答案:

没有答案