首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XNA4.0中渲染3d世界中的动画Texture2D

如何在XNA4.0中渲染3d世界中的动画Texture2D
EN

Stack Overflow用户
提问于 2010-10-27 17:53:02
回答 2查看 1.2K关注 0票数 1

到目前为止,我已经学习了两种在xna中绘图的方法:使用spritebatch或将项目放到3d世界中,然后使用相机进行渲染。

目前,我正在开发我的2.5D游戏。我使用了一种机制,使得深度精灵的转换速度变得更慢,这样看起来游戏中就有了真正的深度。

然而,考虑到效果,即后处理,如果我想将这些效果渲染到深度的中间级别,即渲染到深度为0.5的角色上,而前景树的深度为0.8,则可能会出现一些问题。

因此,我正在考虑在真实的3D世界中渲染我的游戏。

然而,到目前为止,我一直在寻找在3d世界中放置我的精灵并使其具有动画效果的方法,我还没有找到一个。(可能是因为我不知道正确的关键字。)我找到的最接近的主题是关于PointSprite的,它现在已经从XNA4.0中删除了,所以我不能以这种方式实现它。

我的问题是,我如何在3D世界中渲染我的动画精灵(即角色移动)。

谢谢你,圆顶

EN

回答 2

Stack Overflow用户

发布于 2010-10-27 18:11:55

诀窍就是你到目前为止一直在做的事情,而不是使用spritebatch直接绘制到屏幕上,而是将2d图像绘制到3d世界中的平面“工作表”上(每个“工作表”由两个三角形组成一个正方形)。

我建议在create.msdn.com站点上查看构建四边形、纹理和可能的渲染目标的示例作为起点。

票数 0
EN

Stack Overflow用户

发布于 2010-10-27 19:54:42

SpriteBatch是XNA4.0中的新功能,可以与BasicEffect一起使用。

This blog post explains it。它还提供了一些示例代码,通过BasicEffect模拟默认的SpriteBatch功能-但您可以传入您自己的3D矩阵。

具体地说:你的"world“矩阵将在3D空间中描述绘制精灵的平面位置。" view“矩阵将描述您的相机的世界视图。而“项目”矩阵将是3D投影矩阵(可能来自Matrix.CreatePerspective)。

顺便说一句,你所描述的效果的名字是"parallax scrolling“。它与真正的3D不是一回事( 2.5D也是不同的东西)。

如果你只想将效果应用于场景中的某些层:那么,你可以通过将带有像素着色器的效果传递给SpriteBatch.Begin来直接将效果应用于这些精灵。或者,如果您的效果确实是后期处理效果(即:应用于整个屏幕),那么您可以使用渲染目标在屏幕外渲染特定的层,然后使用您的效果将其渲染回屏幕。

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

https://stackoverflow.com/questions/4031884

复制
相关文章

相似问题

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