游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2347|回复: 2

关于地形顶点法线计算的问题

[复制链接]

7

主题

63

帖子

154

积分

注册会员

Rank: 2

积分
154
发表于 2010-12-16 15:07:00 | 显示全部楼层 |阅读模式
//以下代码是计算顶点vertices[i*(iWidth)+j] 的法线的代码
//为什么计算所用的向量是
D3DXVECTOR3 vec1( -1.0f, 0.0f, deltaHeight1 );
D3DXVECTOR3 vec2(  0.0f, 1.0f, deltaHeight2 );
有什么道理,完全没看懂?
height[j]是高度数据


float deltaHeight1, deltaHeight2;
if(i<iHeight-1)
        deltaHeight1 = float(height[j]-height[i+1][j]);
else
        deltaHeight1 = float(height[i-1][j]-height[j]);
if(j<iWidth-1)
        deltaHeight2 = float(height[j+1]-height[j]);
else
        deltaHeight2 = float(height[j]-height[j-1]);
D3DXVECTOR3 vec1( -1.0f, 0.0f, deltaHeight1 );
D3DXVECTOR3 vec2(  0.0f, 1.0f, deltaHeight2 );
D3DXVec3Cross( &vertices[i*(iWidth)+j].normal, &vec1, &vec2 );

7

主题

63

帖子

154

积分

注册会员

Rank: 2

积分
154
 楼主| 发表于 2010-12-17 14:45:00 | 显示全部楼层

Re:关于地形顶点法线计算的问题

那位知道下取
D3DXVECTOR3 vec1( -1.0f, 0.0f, deltaHeight1 );
D3DXVECTOR3 vec2(  0.0f, 1.0f, deltaHeight2 );
这两个向量算法线有什么道理可言?或者说用这两个向量算出的发现一定是顶点向外扩展吗

7

主题

63

帖子

154

积分

注册会员

Rank: 2

积分
154
 楼主| 发表于 2010-12-17 15:31:00 | 显示全部楼层

Re:关于地形顶点法线计算的问题

是不是,根据需要随意指定的? 如果是这样,那对于一个动态的光源,法线也应该动态计算了?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-17 08:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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