d3d如何渲染透明体

来源:百度知道 编辑:UC知道 时间:2024/05/11 04:12:17
比如一颗钻石,我知道光线的折射、反射的过程,就是假如我知道处理光线的算法。
但是我对D3D不熟悉,我知道的就是:把三角形给它,再设置下光源,材质等,DirecteX就会自动把结果渲染出来,根本不用考虑什么算法。
现在,渲染这颗钻石,我应该怎么做呢?又比如,水波、玻璃体等等这些东西。
其实问题就是,我知道算法,怎么用D3D实现它。要用哪些重要的函数?

目前只能模拟这种效果。首先把希望被折射或者反射的内容在需要方向上渲染。一般就是渲染出前后左右上下六个环境贴图,然后用PixelShader根据所在面的法线在这六个贴图上采样, 或者用近似算法实时演算定点的贴图坐标。

D3D11支持光线追踪,实现折射反射效果应该会更便捷。但这东西目前还在试验阶段。

--

不过按你的描述,你还没用Shader写过渲染引擎。不是没有算法,只是固定流水线替你把算法做了。

--

钻石还是直接用半透明的贴图就成了||| 想做出真钻石那种高折射角的效果不用光线追踪实在太麻烦了。