繁体   English   中英

如何在iPhone上绘制3D模型轮廓? (OpenGL ES)

[英]How can I draw 3D model outlines on the iPhone? (OpenGL ES)

我有一个非常简单的情况,需要没有模板缓冲区(iPhone不支持)的我不知道该怎么办。

基本上,我有一个在图像后面绘制的3D模型。 我希望始终在该模型的顶部绘制该模型的轮廓。 因此,当它在图像后面时,您可以看到其轮廓,而当它不在图像后面时,您可以看到带有轮廓的模型。

简单地执行轮廓工作的一种选择是绘制带有粗线和z偏移的模型线框,然后在其顶部绘制常规模型。 问题显然是我需要在模型之后绘制轮廓。

这种方法必须快速,因为我已经在周围推了很多多边形-真的不希望以一种或另一种方式再次完整地绘制模型。

此外,是否有任何方法可以查看当前是否可以看到我的模型? 也就是说,上方的图像在模型的位置是否具有不透明的部分,或者是否具有透明的部分。 如果能够(再次非常快速地)弄清楚这一点,那么我就可以绘制线框而不是纹理模型,具体取决于它是否可见。

这里有什么想法吗? 谢谢。

http://research.microsoft.com/en-us/um/people/hoppe/proj/silmap/对此事的技术文件。 希望有一种更简单的方法可以帮助您完成此任务;)

这是一个可能会产生所需效果的常规选项(我有使用OGL的经验,但没有iPhone的经验):

方法1

  1. 将对象渲染为纯白色,与场景分离。 这将在将渲染对象的位置生成白色蒙版。

  2. 可以使用alpha渐变直接将其绘制到屏幕上以显示“完整对象”,或者如果您打算使用轮廓,则可以尝试将此纹理渲染为另一种纹理,将其稍微放大一下,然后在上方绘制原始的“完整对象”阴影这种放大的纹理为纯黑色。 这将创建一种轮廓纹理,您可以在场景顶部进行渲染。

方法二

编辑出来。 只需阅读“没有模板缓冲区”的规定。

有帮助吗?

大多数时候,如果考虑一下,您可以使用Alpha通道和渲染到纹理来重新创建模具效果...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM