【问题标题】:iOS OpenGL runtime texturingiOS OpenGL 运行时纹理
【发布时间】:2011-11-22 12:45:38
【问题描述】:

是否有可能以某种方式自动继续构建现有网格?如何做到这一点?
举个例子吧。我有一个长方体,我想在运行时有一个更大的长方体。长方体也有一些纹理,长方体的新部分应该有新的纹理。我认为对于这个问题,缩放是不够的,因为纹理。如何在运行时向长方体添加纹理?

您能否建议我一些教程/框架以及解决此问题的任何帮助?


编辑:根据@datenwolf 回答:
我想我可以通过更多时间重复使用相同的网格来扩展长方体的形状。
你知道如何在运行时纹理化一些东西吗?


编辑2:
所以,一个更具体的问题:我想建一个房子,一个简单的有一层的长方体房子。一段时间后,我想添加另一个楼层。我认为这是一项简单的任务,但我以前从未处理过这类问题。

【问题讨论】:

    标签: objective-c ios opengl-es texturing


    【解决方案1】:

    OpenGL 不是场景图。它只是一个绘图 API。屏幕上的可见内容没有内部表示。 OpenGL 在绘制之后唯一剩下的就是帧缓冲区的内容。

    如果你想改变一些东西,你清除帧缓冲区并在完成调整后重绘你的场景。


    关于方程编辑 2: 我只能重申我的第一句话:OpenGL 不是场景图,也就是说,你不能用它“构建”场景。您拥有的是几何数据(顶点)和采样数据(图像/纹理)。

    然后你有一个 绘图 函数,它告诉 OpenGL 从几何数据中制作三角形、线或点,并用从光照计算得出的值填充生成的片段(=像素),纯色和纹理采样数据。

    在 OpenGL 中不会发生对场景的更改!通过更改提供给 OpenGL 的几何数据以及这意味着不同的绘图操作来更改场景

    就像我已经说过的,您不会使用 OpenGL“构建”您的场景/几何图形。为此,您可以使用 Blender、Maya、3DS Max、Cinema 4D 或类似的 3D 建模程序,将模型以渲染程序可以访问的格式存储到某个数据存储(文件、Web 资源、数据库条目等)。更改的模型存储在不同的存储位置,同时加载并代表您绘制新模型的更改。

    另一种构建几何的方法是使用构造(实体)几何 (CSG) 系统,您可以使用该系统从基本构建块(平面、球体、圆锥体、封闭曲面片)和逻辑运算(联合、差异、交叉点)构建场景,排除)。然而 OpenGL 不是一个几何处理库。

    OpenGL 为您提供了绘图工具:画布(=帧缓冲区)、模板、剪刀、拼贴图像(纹理)、“形状”(=基元,即点、线、三角形)和“智能画笔”(着色器)。有趣的是,通过使用具有多次传递的模板缓冲区,可以对实体进行屏幕空间、基于图像的逻辑操作。但这实际上只是基于图像的效果,不会处理几何本身。

    【讨论】:

    • 我已根据您的回答编辑了我的问题。请检查我的编辑。
    • @InfinitePossibilities:我仍然不明白你的实际问题:你只是用调整后的网格绘制立方体。但也许我误解了你的问题。不如先画两张草图,说明立方体的外观以及修改后的效果。
    • 好的,我接受你的回答,现在我明白了。我给你发了一封邮件,也许,我们可以在那里继续讨论吗?我尽量保持简短,以防您没有时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多