DirectX照明

DirectX照明,directx,lighting,Directx,Lighting,嗨。我有一个使用DIGTX10和C++的小游戏。然而,我开始使用meshloaderfromOBJ10 direct X示例制作它,我只是在它的基础上进行构建。然而,我的物品看起来都是纯黑色的,尽管它们有颜色 我知道这是因为灯光,但似乎更改任何代码来处理灯光对本示例没有任何影响 我想知道是否有人知道一种简单的方法来点亮所有的东西,比如让它到处都亮起来。我不在乎阴影、反射或其他类似的东西,因为我做的不是必须的,但如果能看到我的物体而不仅仅是轮廓,那就太好了 干杯 然而,我的物品看起来都是纯黑色的,

嗨。我有一个使用DIGTX10和C++的小游戏。然而,我开始使用meshloaderfromOBJ10 direct X示例制作它,我只是在它的基础上进行构建。然而,我的物品看起来都是纯黑色的,尽管它们有颜色

我知道这是因为灯光,但似乎更改任何代码来处理灯光对本示例没有任何影响

我想知道是否有人知道一种简单的方法来点亮所有的东西,比如让它到处都亮起来。我不在乎阴影、反射或其他类似的东西,因为我做的不是必须的,但如果能看到我的物体而不仅仅是轮廓,那就太好了

干杯

然而,我的物品看起来都是纯黑色的,尽管它们有颜色

如果着色器希望设置纹理并从该纹理读取材质信息,并且将空纹理设置为相应的纹理阶段(采样器或DX10中的任何名称),则着色器将从该空纹理读取黑色。没有镜面反射/发射或反射贴图的黑色材质将始终看起来是黑色的,无论使用多少灯光

在没有纹理的材质/对象上使用白色纹理(假设着色器了解材质颜色并将其与纹理颜色相乘)。或者切换到DX9并使用固定功能管道,将缺少的纹理视为白色。或者修改着色器以支持没有纹理的材质

方法只是照亮一切,如使其到处明亮

您可以使用“全局”环境光(必须将其添加到着色器中,因为D3D10没有固定的函数管道)。然而,你并不真的想要它,因为

我不在乎阴影


你真的关心阴影,只是还不知道而已。“全局环境值”将使所有材质颜色均匀,没有任何渐变。这意味着,如果你有一个未加纹理的复杂网格,你将无法弄清楚你在看什么,所有的纹理将看起来丑陋。此外,黑色材质仍将保持黑色。因此,要“使其处处明亮”,您需要“太阳”方向光源或非常大的点光源。

我认为通常您可以在HLSL着色器中以RGB格式指定输出颜色(范围
0.f…1.f
)。你说的“剪影”是什么意思?线框?