游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2110|回复: 6

凹凸映射问题!!!!急!!!!

[复制链接]

39

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
发表于 2008-4-1 22:33:00 | 显示全部楼层 |阅读模式
VS_OUTPUT VS(float4 Pos : POSITION, float2 Tex : TEXCOORD, float3 Normal : NORMAL, float3 Tangent : TANGENT? )
{
VS_OUTPUT Out = (VS_OUTPUT)0;
//顶点坐标变换
Out.Pos = mul(Pos, matWorldViewProj);
//构建一个3x3变换矩阵? 用于完成从世界空间到纹理空间的变换
float3x3 worldToTangentSpace;
worldToTangentSpace[0] = mul(Tangent, matWorld);
worldToTangentSpace[1] = mul(cross(Tangent,Normal), matWorld);
worldToTangentSpace[2] = mul(Normal, matWorld);

Out.Tex = Tex.xy;
//顶点在世界空间中的坐标
float3 PosWorld = normalize(mul(Pos, matWorld));

//计算纹理空间中灯光方向向量
float3 Light? = vecLightDir - PosWorld;
Out.Light.xyz = mul(worldToTangentSpace, Light);

//计算纹理空间中的观察方向
float3 Viewer = vecEye - PosWorld;
Out.View = mul(worldToTangentSpace, Viewer);
return Out;
}

为什么是
mul(worldToTangentSpace, Light);
而不是
mul(Light, worldToTangentSpacet);


一个3*3的矩阵能够乘以1*3的向量吗!?!?
请大虾解我心中疑惑...... [em6]

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2008-4-1 23:09:00 | 显示全部楼层

Re:凹凸映射问题!!!!急!!!!

worldToTangentSpace 实际上是切线空间在世界空间的变换,如果 matrix 在左 vector 在右,就是相当于 vector * matrix 的逆,也就是说把世界空间的向量变换到切线空间。

0

主题

228

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
发表于 2008-4-2 00:03:00 | 显示全部楼层

Re:凹凸映射问题!!!!急!!!!

一个3*3的矩阵能够乘以1*3的向量吗!?!?
----------------------------------------
向量在左边时为行向量,在右边时为列向量,两种情况的矩阵互为转置矩阵

39

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
 楼主| 发表于 2008-4-2 18:09:00 | 显示全部楼层

Re:凹凸映射问题!!!!急!!!!

worldToTangentSpace是直交矩阵吗?

一个3*3的矩阵能够乘以1*3的向量吗!?!?
----------------------------------------
向量在左边时为行向量,在右边时为列向量,两种情况的矩阵互为转置矩阵


matrix 在左 vector 在右,就是相当于 vector * matrix 的逆

那么就是说
matrix*vector 即是vector * matrix 的逆又是转置?
matrix*vector是直交矩阵?

39

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
 楼主| 发表于 2008-4-2 18:16:00 | 显示全部楼层

Re:凹凸映射问题!!!!急!!!!

不好意思,断句断错了,意思理解错了,现在理解了

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-4-4 08:23:00 | 显示全部楼层

Re:凹凸映射问题!!!!急!!!!

一个3*3的矩阵能够乘以1*3的向量吗!?!?

不可以。

矩阵乘法要求 左侧 m*s 右侧 s*n

7

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2008-4-4 22:06:00 | 显示全部楼层

Re:凹凸映射问题!!!!急!!!!

我想问问你是怎么DEBUG HLSL的???
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 15:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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