游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: Snow_Ice11111

为什么相同的材质,在同一个平面上会有这么大的反光差

[复制链接]

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
发表于 2009-9-19 12:17:00 | 显示全部楼层

Re:为什么相同的材质,在同一个平面上会有这么大的反光

楼主,你用的是顶点光照?

3

主题

30

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2009-9-19 14:15:00 | 显示全部楼层

Re:为什么相同的材质,在同一个平面上会有这么大的反光

光照分为顶点光照和像素光照,我也不知道我用的是哪种,因为代码大部分是从书上例子改来的。D3D环境设定代码如下:
IDirect3D9* d3d9 = Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS d3dpp;
d3dpp.BackBufferWidth            = rect.Width();        //窗口大小
d3dpp.BackBufferHeight           = rect.Height();
d3dpp.BackBufferFormat           = D3DFMT_A8R8G8B8;
d3dpp.BackBufferCount            = 1;
d3dpp.MultiSampleType            = D3DMULTISAMPLE_NONE;
d3dpp.MultiSampleQuality         = 0;
d3dpp.SwapEffect                 = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow              = GetDlgItem(IDC_D3D)->m_hWnd;        //窗口句柄
d3dpp.Windowed                   = TRUE;                //窗口显示
d3dpp.EnableAutoDepthStencil     = true;
d3dpp.AutoDepthStencilFormat     = D3DFMT_D24S8;
d3dpp.Flags                      = 0;
d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
d3d9->CreateDevice(
                D3DADAPTER_DEFAULT, // primary adapter
                D3DDEVTYPE_HAL,         // device type
                GetDlgItem(IDC_D3D)->m_hWnd, // window associated with device
                D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                &d3dpp,             // present parameters
                &m_Device);            // return created device
d3d9->Release(); // done with d3d9 object
// 创建各大大小小的Box
D3DXCreateBox(......);
......
//然后建立世界矩阵-各模型在世界空间中的位置
D3DXMatrixTranslation(......);
......
//再设定并启用光源
......

最后在每帧的渲染函数中显示所有的Box。因为并没有作什么特别的设置,所以不知道系统默认用的是哪种光照?不过看前面代码中得到的FVF格式为D3DFVF_XYZ | D3DFVF_NORMAL的,所以估计用的是顶点光照,不知道这样判断对不对?请楼上兄弟指点指点哈!

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
发表于 2009-9-20 11:20:00 | 显示全部楼层

Re:为什么相同的材质,在同一个平面上会有这么大的反光

我认为应该还是法线问题,法线方向不对

3

主题

30

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2009-9-20 14:59:00 | 显示全部楼层

我把正面这堵光照不自然的墙的三角形顶点信息贴上来,

都是截图,为了方便大家浏览,我把6个面的三角形顶点信息的截图拼成一张图,并加上了相应的文字说明。这些信息表明了组成这6个面的12个三角形,它们各自的顶点的法线都指向各自的外面,应该没问题吧?请大家继续指点!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 13:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表