Questions tagged «cubemap»

4
程序行星,高度图和纹理
我目前正在开发OpenGL程序行星生成器。我希望将其用于太空RPG,它将不允许玩家进入行星表面,因此我忽略了与ROAM相关的任何内容。目前,我正在绘制带有VBO的立方体并将其映射到球体上。 我熟悉大多数分形高度图生成技术,并且已经实现了我自己的中点位移版本(在我所知道的情况下没有那么有用)。 我的问题是,程序上生成高度图的最佳方法是什么。我看过libnoise,它使我可以创建可调整的高度图/纹理,但据我所知,我需要生成一个像这样的网。 使平铺变得明显。 有人可以建议我采取最佳路线吗? 任何输入将不胜感激。

1
使用GLSL 330版实现Skybox
我正在尝试让Skybox使用OpenGL 3.3和GLSL 330版。 我在网络上的任何地方都找不到完整的现代OGL skybox教程,因此我对一个较旧的版本进行了现代化(使用glVertexAttribPointer()而不是gl_Vertex用于顶点等)。它主要在工作,但是有两个主要细节: 天空盒更像天空三角形,纹理严重扭曲和拉伸(它们应该是星场,我在黑色背景上看到线条)。我99%确信这是因为我没有完全正确移植旧教程。 这是我的Skybox类: static ShaderProgram* cubeMapShader = nullptr; static const GLfloat vertices[] = { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, …
14 c++  opengl  glsl  cubemap  skybox 

1
OpenGL / GLSL:渲染到立方体贴图?
我试图弄清楚如何将场景渲染为立方体贴图。我在这个问题上停留了一段时间,以为我会向你们寻求帮助。我是OpenGL的新手,这是我第一次使用FBO。 我目前有一个使用cubemap bmp文件的工作示例,片段着色器中的samplerCube样本类型附加到GL_TEXTURE1。我根本没有更改着色器代码。我只是改变了一个事实,即我不会调用正在加载cubemap bmp文件的函数,而是尝试使用以下代码来渲染到cubemap。 您可以在下面看到我还将纹理再次附加到GL_TEXTURE1。在设置制服时是这样的: glUniform1i(getUniLoc(myProg, "Cubemap"), 1); 它可以通过在我的片段着色器中访问它uniform samplerCube Cubemap。 我这样调用以下函数: cubeMapTexture = renderToCubeMap(150, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE); 现在,我意识到在下面的绘制循环中,我没有更改视图方向来向下看+ x,-x,+ y,-y,+ z,-z轴。我真的只是想在实现之前先看到一些东西。我认为我至少应该像现在的代码一样在对象上看到一些东西。 我什么也没看见,只是黑色。我将背景设为白色,但物体仍为黑色。我删除了照明和着色,仅对立方体贴图纹理进行采样,并且仍然为黑色。 我认为问题可能是设置纹理时的格式类型,即GL_RGB8,GL_RGBA,但我也尝试过: GL_RGBA,GL_RGBA GL_RGB,GL_RGB 我认为这是标准的,因为我们正在渲染附加到帧缓冲区的纹理,但是我看到了使用不同枚举值的不同示例。 我还尝试在每个要使用立方体贴图的绘制调用中绑定立方体贴图纹理: glBindTexture(GL_TEXTURE_CUBE_MAP, cubeMapTexture); 另外,我没有为大多数示例中看到的FBO创建深度缓冲区,因为我只想为我的立方体贴图使用颜色缓冲区。我实际上添加了一个,看是否是问题所在,但仍然得到了相同的结果。当我尝试时,我可能会捏造出来。 可以为我指明正确方向的任何帮助将不胜感激。 GLuint renderToCubeMap(int size, GLenum InternalFormat, GLenum Format, GLenum Type) { // color cube map GLuint textureObject; int face; …
13 opengl  glsl  cubemap 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.