游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2382|回复: 3

请问为什么光照计算要放在view space中呢?

[复制链接]

3

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2011-8-31 15:23:00 | 显示全部楼层 |阅读模式
毕竟光源的方向等属性都是在world space中定义的。
那这样看来  直接在 world space 中计算光照后的颜色不是更方便。
而不用再将光源转换到view space中去。

那为什么固定管线里 光照计算是放在view space中 而不是在world space中进行?

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2011-8-31 15:25:00 | 显示全部楼层

Re:请问为什么光照计算要放在view space中呢?

你觉得光源的属性是world space , 那是上层引擎封装的结果,便于你使用。

3

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2011-8-31 15:33:00 | 显示全部楼层

Re: 请问为什么光照计算要放在view space中呢?

E...
楼上的大侠能讲更详细点么?  

6

主题

74

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2011-9-9 17:27:00 | 显示全部楼层

Re:请问为什么光照计算要放在view space中呢?

这个很容易理解啊,主要是为了效率。

如果放在world space,那么pos/normal会先*mWorld再计算光照,再*mView,最后mproj
如果是在view space里面,先计算mworld*mview ,然后一次矩阵运算就可以搞定坐标变换。

而软件实现的光照,一般是在model space里面计算。

把view pos和light pos变换到model space里面。这样避免了对每个顶点pos/normal的变换,提高了效率
因为对一个模型来说,view pos,light pos只需计算一次,要是按顶点变换的话,矩阵计算就会多很多。

最终效果是一样的,只不过算法效率不一样
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-5 17:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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