首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >图形引擎如何计算出如何放置像素来制作3d图像?

图形引擎如何计算出如何放置像素来制作3d图像?
EN

Stack Overflow用户
提问于 2013-05-23 13:11:00
回答 1查看 101关注 0票数 1

我想知道一个简单的3d程序使用什么程序来绘制2d像素,使它们看起来是3d的。我真的很感兴趣的绘图目的,因为如果一个程序可以搞清楚如何使用平面屏幕来产生有深度的图像,那么也许我可以在我的绘图中使用这些技术。

有没有什么基本的3d引擎我可以看看?没有任何2d到3d抽象?

EN

回答 1

Stack Overflow用户

发布于 2013-05-25 08:04:28

您可能会对以下两个概念感兴趣:

  • 透视投影,这是一种数学变换,它采用3D点(或顶点)和相机的特征(位置、方向、阻挡等)。并给出该点在所选介质(屏幕)上的2D投影。

代码语言:javascript
运行
AI代码解释
复制
- [Wikipedia - 3D Projection](http://en.wikipedia.org/wiki/3D_projection)
- [StackOverflow - Transform GPS-Points to Screen-Points with Perspective Projection in Android](https://stackoverflow.com/a/16709921/624547) (I made a detailed answer)

  • Painter's algorithm (因为您似乎要求与绘制相关的技术),这是一种渲染方法,它在投影场景的所有元素后按深度对其进行排序,并通过减小深度在介质上绘制它们,以确保真实的输出(“隐藏在较近的对象后面的远对象”-模仿绘制方法)。然而,该算法有一些局限性(在基本实现中远远不是很有效,不能轻松地处理彼此相交或环形重叠的元素),因此大多数时候都会使用更有效的方法,即在像素到像素的基础上处理深度冲突的Z-buffering,。

代码语言:javascript
运行
AI代码解释
复制
- [Wikipedia - Painter's algorithm](http://en.wikipedia.org/wiki/Painter%27s_algorithm)
- [Wikipedia - Z-buffering](http://en.wikipedia.org/wiki/Z-buffering)

通过组合这些概念,您实际上可以实现自己的简单3D引擎(在我所指的另一个StackOverflow线程中,我给出了一个链接,指向我撰写的一篇关于轻松创建这样一个引擎的文章)。

如果你想了解更复杂的引擎和概念,你可以看看Nvidia的GPUGems3,或者看看关于OpenGL的文章。

希望对你有帮助,再见!

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

https://stackoverflow.com/questions/16714865

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文