我最近一直在尝试使用 XNA 在 Silverlight 5 中创建一些 3D 渲染代码。不幸的是,我一直无法让任何东西(使用我的自定义着色器)工作。
基本效果用于立方体并且仅使用 VertexPositionColor 信息,但是当我切换到使用自定义着色器时,似乎没有任何渲染(或渲染离屏)。
为了尝试帮助自己解决这个问题,我什至掌握了 BasicEffect hlsl 代码,但它并没有做任何我没有做的事情。
该代码采用世界、视图和投影矩阵,并按以下顺序将每个矩阵乘以一个位置:
float4 pos_ws = mul(position, World);
float4 pos_vs = mul(pos_ws, View);
float4 pos_ps = mul(pos_vs, Projection);
我更改了代码以执行相同的操作(而不是传入单个 WorldViewProjection 矩阵),并且我的着色器使用它来计算位置,然后将颜色应用于像素。然而,什么都没有渲染。
我非常坚持这一点,我在基本的 3D 上通过了,但通过了似乎并没有削减它!:)