代码之家  ›  专栏  ›  技术社区  ›  Tom J Nowell

DirectX9镜面映射

  •  4
  • Tom J Nowell  · 技术社区  · 15 年前

    如何实现一个纹理作为一个几何图形的镜面映射,并用C++在DICTX9中渲染?

    有没有可以参考的教程或基本示例?

    1 回复  |  直到 15 年前
        1
  •  6
  •   Goz    15 年前

    使用 D3DXCreateTextureFromFile 从磁盘加载文件。然后需要设置一个明暗器,该明暗器将镜面反射值乘以纹理中存储的值。这会给你镜面颜色。

    所以你的最终像素来自

    Final = ambient + (N.L * texture colour) + (N.H * texture specular)
    

    在明暗器中可以很容易地做到这一点。

    同样值得注意的是,在纹理的alpha通道中存储每texel镜面反射非常有用。这样你只需要一个纹理,尽管它会打破每像素的透明度。