月下的博客

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  34 Posts :: 0 Stories :: 59 Comments :: 0 Trackbacks

常用链接

留言簿(5)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

  哈哈,花了两天把POM完成,虽然我的爱机的配置很好,不过我还是按照了SM 2.0的规范写的,虽然DirecxtX sdk那个是用SM 3.0写的,效果帅多了....不过2.0的POM写得花三个Pass,比较麻烦,所以我就实现它了~~
  先传图把
 
写的过程中遇到写旧的错误,以前以为只是个小问题的,现在觉得该重视了,关于mul()函数的用法,都知道在线性代数里,矩阵和向量相乘必须首先满足矩阵的行数等于向量的列数,其次乘运算时,向量在前矩阵在后。不过在看很多shader代码的时候我发现,许多人都不注意这问题,而且在大部分情况下颠倒矩阵和向量的顺序也是没问题的。但我写的时候就悲剧了。。。
譬如: Out.Position = mul( g_mWorldViewProjection, inPosition );
于是乎,显示结果就很诡异:

   我没深入考虑这现象为何出现,不过觉得肯定与乘法顺序有关,所以以后还是乖乖地按规则来了。。贴在此供路人参考了~~


  原理过两天补上,这两天想实现的东西好多,大学的破课更多。。faint。。。


posted on 2010-05-26 20:19 月下圆舞曲 阅读(799) 评论(5)  编辑 收藏 引用 所属分类: 开发

Feedback

# re: 矩阵乘向量的顺序会产生悲剧的-.-!! 2010-05-27 09:09 战魂小筑
D3D&XBOX的HLSL 都是矩阵放后面, PS3及WII都是前置  回复  更多评论
  

# re: 矩阵乘向量的顺序会产生悲剧的-.-!! 2010-05-27 09:10 战魂小筑
当然, 你不愿意修改位置,那就把矩阵从程序传过来时,转置就好
如果还不愿意转置,那么在编译时,有个参数,可以让FX系统帮你转  回复  更多评论
  

# re: 矩阵乘向量的顺序会产生悲剧的-.-!! 2010-05-27 09:51 月下圆舞曲
@战魂小筑
好~~我去查查那参数去,不过规范也是矩阵放后面,就按这个来好了~~
但为何PS3及WII都是前置呢?底层处理不同?  回复  更多评论
  

# re: 矩阵乘向量的顺序会产生悲剧的-.-!! 2010-05-27 19:19 战魂小筑
这跟列主序,和行主序有关系, 你在我博客里查下,我原来有讨论过这个问题  回复  更多评论
  

# re: 矩阵乘向量的顺序会产生悲剧的-.-!! 2010-05-27 21:40 月下圆舞曲
@战魂小筑
刚去找了下。。。找到第十页还没找到。。不过还是多谢你给我解答啦~~
  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理