我有一个看似简单的问题,但由于我是初学者,我不知道如何处理它。 我正在构建一个用于显示Metallics Objects(3ds)模型的应用程序。我很满意平滑而干净的渲染。然而,我的客户告诉我,对象看起来太多了“就像在电子游戏中一样”。
您是否了解我可以应用于使对象看起来更逼真的效果?我没有使用UV Mapping,我有非常简单的3Ds对象,我使用IrrlichtLime为节点着色。我只是想尝试让它们更逼真,也许是通过添加一些简单的效果(哪一个? - 如果你有时间 - 如何?)。我有一个非常接近的截止日期,所以我非常感谢任何帮助。 (请注意,我对3D编程不是很流利,这是我的第一次 - 当然也是最后一次:lol: - 关于这个主题的项目。我已经准备好并且愿意努力但老实说我将无法处理事情太复杂了。)
以下是我用来为节点着色的代码:
for (int i = 0; i < _node.MaterialCount; ++i)
{
_node.GetMaterial(i).EmissiveColor = new IrrlichtLime.Video.Color(R, G, B);
_node.GetMaterial(i).DiffuseColor = new IrrlichtLime.Video.Color(R, G, B);
}
_node.SetMaterialType(MaterialType.Solid);
以下是我用来使其看起来更好的当前代码:
_node.SetMaterialFlag(MaterialFlag.Lighting, true);
_node.SetMaterialFlag(MaterialFlag.NormalizeNormals, true);
_node.GetMaterial(0).SpecularColor = new Color(255, 255, 255, 255);
_node.GetMaterial(0).AmbientColor = new Color(255, 255, 255, 255);
_node.GetMaterial(0).DiffuseColor = new Color(255, 255, 255, 255);
_node.GetMaterial(0).EmissiveColor = new Color(0, 0, 0, 0);
_node.GetMaterial(0).Shininess = 50;
smgr.AddLightSceneNode(null, new Vector3Df(0, 0, 0), new Colorf(0.2f, 0.2f, 0.2f, 0.2f), 2);
smgr.AddLightSceneNode(null, new Vector3Df(0, 0, -30), new Colorf(0.1f, 0.1f, 0.1f, 0.1f), 10).LightData.Type=LightType.Directional;
谢谢