【问题标题】:Procedural skydome程序天穹
【发布时间】:2009-12-23 17:49:49
【问题描述】:

有人知道如何或在哪里可以找到有关如何制作程序天穹的信息吗?欢迎任何帮助。

【问题讨论】:

    标签: graphics procedural-generation


    【解决方案1】:

    请参阅 GameDev 的 this thread。里面也有一些 C++ 的示例代码。

    【讨论】:

    • 我不认为他们在讨论我的问题。我想通过程序生成一个天穹网格,而不是更改应用的纹理,也不是自动计算它(尽管我将来可能会做类似的事情,所以无论如何这都是一本有趣的书,谢谢。)
    • 为什么要更改网格?天穹的全部意义在于任意远离。因此,几乎按照定义,网格并不重要:您选择一组简单、固定的多边形(例如,一个巨大的盒子)并使用纹理来绘制天穹。如果这不是您所说的“程序性天穹”,那您的意思是什么
    • 呃,让我纠正一下自己:网格可以是球体的形状(这就是使它成为圆顶的原因),但通常您会使用巨型盒子形状的纹理。这些纹理决定了天空在任何特定点的颜色——所以当您询问有关“程序化天穹”的信息时,我们假设您想用某种程序着色器替换这些纹理。
    • 我不知道怎么称呼它,如果问题令人困惑,我很抱歉。我想要的是在程序上创建一个球体;我知道天穹是什么。我还将做一些程序着色器来应用到天穹,但我会在之后做,我或多或少地想通了。我仍然是计算机图形学的新手,有很多东西要阅读和学习,如果我的问题令人困惑,请见谅。
    【解决方案2】:

    天穹只是一个球体,围绕整个关卡绘制。只需绘制一个球体,确保关闭背面剔除,并打开正面剔除(因为您在球体内)。

    在程序上生成一个球体很简单,我通常的方法是从硬编码的二十面体开始,然后细分面,直到达到所需的细节。 gamedev 上有一个关于生成球体的线程: http://www.gamedev.net/community/forums/topic.asp?topic_id=537269

    我不确定这是否真的回答了您的问题,看到您对其他答案的回答让我觉得对于什么是天穹有些混淆。重申一下,它只是一个球体,重要的是您在其上绘制的纹理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      相关资源
      最近更新 更多