首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mesh.Effects输入XNA

Mesh.Effects输入XNA
EN

Stack Overflow用户
提问于 2012-12-29 21:24:12
回答 2查看 218关注 0票数 2

我不太明白什么是effect.Worldeffect.View等等,为什么我们要把它们放在里面?

代码语言:javascript
复制
foreach (ModelMesh mesh in model1.Meshes)
        {
            foreach (BasicEffect effect in mesh.Effects)
            {
                effect.World = Matrix.CreateWorld(Vector3.Zero, Vector3.Forward, Vector3.Up);
                effect.View = Matrix.CreateLookAt(Vector3.Zero, Vector3.Zero, Vector3.Up);
            }
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-30 00:49:44

effect.World不是代表世界的矩阵。它是一个矩阵,表示3d对象(网格、模型)相对于3d游戏世界的位置和方向。如果每个对象的位置不同&/或者指向不同,那么它们将具有不同的effect.World矩阵。

effect.View是一个矩阵,它(以反转的形式)表示摄像机相对于同一3d游戏世界的位置和方向。大多数情况下,只有一个摄像头,但可以有更多摄像头(例如,后视镜将有自己的视图矩阵,而不是显示赛车游戏挡风玻璃外的主屏幕)。

  1. 模型的顶点很难对局部空间进行建模。
  2. 然后effect.World将它们转换到游戏世界空间。
  3. 然后effect.View将它们转换到相机空间。
  4. 然后effect.Projection将它们转换到2d屏幕空间和'volia',您的像素着色器知道在哪里绘制什么。

<代码>G29

票数 2
EN

Stack Overflow用户

发布于 2012-12-29 21:30:15

来自MSDN;

BasicEffect.World

获取或设置世界矩阵。使用此矩阵通过世界坐标更改模型的位置。

BasicEffect.View

获取或设置视图矩阵。使用此矩阵更改摄影机的位置和方向。

我认为粗体的线条解释了他们的区别。我还找到了一些有用的文章;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14082113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档