纹理坐标与NV路径渲染

时间:2017-05-01 08:32:50

标签: opengl

我正在尝试将GLSL片段着色器应用于我使用NV路径渲染渲染的某些文本。我的问题是路径渲染不使用顶点着色器,我需要以某种方式将纹理坐标放入我的片段着色器。

我在SDK中找到了一个名为 nvpr_shaders 的纹理路径示例,但此示例使用了cg着色器,并且似乎依赖于片段着色器能够处理TEXCOORD0。第15页的here对此方法进行了描述。

之前我没有使用过CG,所以我不完全确定管道是如何工作的。这是示例中的cg着色器:

void bumpmap(float2 normalMapTexCoord : TEXCOORD0,
         float3 lightDir          : TEXCOORD1,
         out float4 color : COLOR,
        uniform float3 lightPos,
        uniform sampler2D   normalMap)
{
  // Normalizes light vector with normalization cube map
  float3 light = normalize(lightPos - float3(normalMapTexCoord,0));
  // Sample and expand the normal map texture   
  float3 normalTex = tex2D(normalMap, normalMapTexCoord).xyz;
  float3 normal = expand(normalTex);
  // Diffuse lighting
  float diffuse = dot(normal,light);

  // Decide the brick color based on how flat (red) or angled (red) the surface is.
  float3 red = float3(1,0,0);
  float3 white = float3(1,1,1);
  float3 brick = normal.z > 0.9 ? red : white;

  color = float4(brick*diffuse,1);
}

是否可以以类似的方式在GLSL片段着色器中设置纹理坐标?即,我可以在不使用CG Toolkit的情况下将纹理坐标转换为GLSL frag着色器以进行路径渲染吗?

0 个答案:

没有答案