游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1400|回复: 1

normal的变换需不需要mul VIEW 矩阵

[复制链接]

11

主题

650

帖子

651

积分

高级会员

Rank: 4

积分
651
发表于 2009-3-19 22:05:00 | 显示全部楼层 |阅读模式
我在使用rendermonkey的时候 顶点着色器里normal进行了view的变换 如下:

   float3 fvObjectPosition = mul( Input.Position, matView );

当我把view删掉  移动物体,光照区域不变,背面原来是黑的,转到正面还是黑的。
于是我认为 未对法线进行相应的变换 导致了法线一直不变 算出来的光照就那样了

然而我在看xna里的BasicEffect.fx以及其他效果里面的确是这样

        float3 N = normalize(mul(normal, World));

只对其进行了世界矩阵变换,然而在运行例子的时候,物体转动,光照却能正常的照明。。

我哪里错了呢?

0

主题

56

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2009-3-19 22:40:00 | 显示全部楼层

Re:normal的变换需不需要mul VIEW 矩阵

如果你要将Normal转换到View空间进行处理的话就必须对其进行View变化。其实Normal变换到任何空间都可以,但要保证的是跟Normal做计算的向量(如光照方向)一定要跟Normal在同一空间内。
XNA里面那个例子是将Normal变换到World空间。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 01:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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