我正在使用托管的DirectX9和C#。我对cnc机器进行了可视化。
在计算机1上它完美运行。圆管在左侧是亮灰色,阴影线性为深灰色。
在计算机2上我得到了不同的东西(相同的代码!): 它只是左边的白色,右边的深灰色,但它不是线性的。它仍为白色至约45%的管,黑色为55%。阴影只在这些点可见之间....
任何想法???
看起来我使用太亮的光,但代码完全一样......
/编辑 好的是截图: 有问题的电脑是i3 + Intel板载图形+ Win7 64Bit 具有正确可视化的计算机是具有板载和XP 32Bit的较旧的英特尔
以下是DirectX的设置:
PresentParameters aPresentParams = new PresentParameters();
aPresentParams.Windowed = true;
aPresentParams.DeviceWindow = theControl;
aPresentParams.DeviceWindowHandle = theControl.Handle;
aPresentParams.SwapEffect = SwapEffect.Copy;
aPresentParams.EnableAutoDepthStencil = true;
aPresentParams.AutoDepthStencilFormat = DepthFormat.D16;
CreateFlags aCreateFlags = CreateFlags.HardwareVertexProcessing;
itsDevice = new Device(0, DeviceType.Hardware, theControl, aCreateFlags, aPresentParams);
itsDevice.RenderState.AntiAliasedLineEnable = true;
itsDevice.RenderState.CullMode = Cull.None;
//some materials...
itsMaterialBasic.Diffuse = Color.LightGray;
itsMaterialBasic.Ambient = Color.FromArgb(0, 80, 80, 80);
itsMaterialBasic.Specular = Color.Red;
itsMaterialBasic.SpecularSharpness = 1000.0f;
//...
itsDevice.RenderState.Lighting = true;
itsDevice.Lights[0].Type = LightType.Point;
itsDevice.Lights[0].Diffuse = Color.LightGray;
itsDevice.Lights[0].Range = 10000f;
itsDevice.Lights[0].Falloff = 10f;
itsDevice.Lights[0].Direction = new Vector3(-5, -28, 10);
itsDevice.Lights[0].Position = new Vector3(1000, 2000, 3350);
itsDevice.Lights[0].Attenuation0 = 0f;
itsDevice.Lights[0].Update();
itsDevice.Lights[0].Enabled = true;
itsDevice.RenderState.ShadeMode = ShadeMode.Phong;
itsDevice.RenderState.SpecularEnable = true;
itsDevice.RenderState.SpecularMaterialSource = ColorSource.Color1;
itsDevice.RenderState.Ambient = Color.FromArgb(110, 110, 110);
itsDevice.RenderState.AmbientMaterialSource = ColorSource.Color1;
答案 0 :(得分:0)
我有新闻!!! computer1..n: Intel i7集成图形或新显卡: 软件和硬件逆处理:错误
computer0: 带有旧显卡的32位WinXP: Hardwarevertexprocessing:正确 Softwarevertexprocessing:错误
我尝试使用着色器。但我也得到错误的可视化。 我通过三角形内的2个向量的交叉积来为三角形的3个顶点生成法线(并将它们标准化)。但是,当我使用pixelhader返回值(rgb)的normal.XYZ值时,它应该看起来像普通的地图。但有些部分只是一种颜色......
真正疯狂的事情:它与来自互联网的简单教程示例相同!!!!我的代码怎么了??????