您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> winform 用Directx 做模型的光源问题

winform 用Directx 做模型的光源问题

来源:网络整理     时间:2016/5/9 9:59:45     关键词:directx,winform

关于网友提出的“winform 用Directx 做模型的光源问题”问题疑问,本网通过在网上对“winform 用Directx 做模型的光源问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:winform 用Directx 做模型的光源问题
描述:

目前做在.net winform引用Directx 做了一个3d模型,数据是从数据库中读到的三维坐标。用的是平行光源。方向是从上往下斜着照射的。问题是模型看上去光是从中心原点发出的,而且看上去有点暗,如果把环境光调高,模型又会变的惨白。
下面的图是材质和光源的设置。另外顶点缓冲也设置了顶点法向量。
//材质设置
 material = new Material();
            material.Ambient = Color.FromArgb(0, 40, 40, 40);//设置环境光
            material.Diffuse = Color.FromArgb(1, 250, 250, 250);//设置漫反射
            material.Emissive = Color.FromArgb(0, 0, 0, 0);//设置自发光
            material.Specular = Color.FromArgb(0, 200, 200, 200);//设置镜面反射光
            material.SpecularSharpness = 200;//反射高光清晰度
            device.Material = material;
//光源设置
//填充模式
                device.RenderState.FillMode = FillMode.Solid;
                //开启场景光源
                device.RenderState.Lighting = true;
               device.RenderState.SpecularEnable = true;
                 //设置光源类型,Point为点光源,Directional为平行光源,Spot为聚光灯(散射型)
              device.Lights[0].Type = LightType.Directional;
               
               device.Lights[0].Direction = new Vector3(1,1,-10);
               device.Lights[0].Direction = new Vector3(0, 0, -10);
                //        //漫射光
                device.Lights[0].Diffuse = Color.FromArgb(0, 250, 250, 250);
                //      //环境光
                device.Lights[0].Ambient = Color.FromArgb(0, 40, 40, 40);
                //镜面光
                device.Lights[0].Specular = Color.FromArgb(0, 200, 200, 200);
                //   //开启
                device.Lights[0].Enabled = true;
winform界面设计,winform,winform 打包,winform控件,c#winform视频jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform是什么,c#winform,c#winform窗体美化,winform视频jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winformjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform皮肤控件,c#winformjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform控件库,winform chart控件,c#winform登录界
                     


解决方案1:

不清楚了,我去掉高光、环境光,显示的色彩亮度是正常的
有高光:
winform界面设计,winform,winform 打包,winform控件,c#winform视频jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform是什么,c#winform,c#winform窗体美化,winform视频jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winformjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform皮肤控件,c#winformjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform控件库,winform chart控件,c#winform登录界
无高光:
winform界面设计,winform,winform 打包,winform控件,c#winform视频jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform是什么,c#winform,c#winform窗体美化,winform视频jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winformjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform皮肤控件,c#winformjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,winform控件库,winform chart控件,c#winform登录界

解决方案2:

               device.Lights[0].Direction = new Vector3(1,1,-10);
               device.Lights[0].Direction = new Vector3(0, 0, -10);
这样最后不还是水平光吗?


以上介绍了“winform 用Directx 做模型的光源问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/987468.html

相关图片

相关文章