Questions tagged «opengl»

OpenGL是针对台式机和工作站市场的图形标准和API。它的设计易于通过专用计算机硬件进行加速,因此与传统的软件渲染相比,大多数实现方式都可以大大提高性能。当前,OpenGL用于CAD软件和计算机游戏等应用程序。它也是跨平台的。OpenGL标准由Khronos组控制,该组还控制OpenGL ES。

3
什么是Vulkan,它与OpenGL有何不同?
Khronos Group(OpenGL背后的标准机构)刚刚宣布Vulkan: Vulkan是新一代的开放标准API,可在现代GPU上高效访问图形和计算。这种基础设计(以前称为“下一代OpenGL计划”)可为应用程序提供对GPU加速的直接控制,以实现最佳性能和可预测性。 他们的页面颇具市场色彩 / 专业术语,就像新闻稿一样 ……简单来说,Vulkan对游戏开发者意味着什么?(Gabe Newell对此表示强烈支持,无需进一步解释。) Vulkan与OpenGL的确切关系是什么?它的先前名称“ glNext”(“下一代OpenGL计划”的缩写)听起来像是替代品。 更新:Vulkan 1.0规范于2016年2月16日发布。
150 opengl  vulkan 

15
OpenGL有哪些良好的学习资源?[关闭]
我已经在iPhone上使用OpenGL ES已有一段时间了,基本上,我对示例中看到的并作为我自己的一小部分命令感到迷茫。我很想在其他平台上使用OpenGL,并且对它有很好的了解。 每次搜寻书籍时,都会发现这本庞大的圣经,对初学者来说似乎毫无兴趣,而且很难。如果我有两个周末花在学习OpenGL上,那么花时间(和金钱)的最佳方式是什么?
88 opengl 

9
为什么我们移动世界而不是摄影机?
我听说在OpenGL游戏中,让玩家移动的方法不是移动相机,而是移动整个世界。 例如,这里是本教程的摘录:OpenGL视图矩阵 在现实生活中,您习惯于移动相机以更改特定场景的视图,而在OpenGL中则相反。OpenGL中的相机无法移动,并且被定义为面向负Z方向位于(0,0,0)。这意味着无需移动和旋转相机,而是围绕相机移动和旋转世界以构建适当的视图。 我们为什么要这样做?

7
学习现代OpenGL(3.0或更高版本)的良好资源?[关闭]
我偶然发现了从OpenGL(3.0或更高版本)开始的良好资源搜索。好吧,我发现了很多书,但是没有一本可以被认为是很好的资源! 这里有两个例子: OpenGL编程指南(第7版) http://www.amazon.com/exec/obidos/ASIN/0321552628/khongrou-20 这是已弃用的材料!几乎每个章节都以注释开头。 OpenGL Superbible(第5版) http://www.amazon.com/exec/obidos/ASIN/0321712617/khongrou-20 本书使用作者创建的库来解释主要的论点,隐藏您想学习的内容!我不想学习如何使用您的图书馆!我想学习OpenGL! 我希望您理解的问题不像“嘿,我无法使用Google ...告诉我如何学习OpenGL”之类的问题。我刚刚完成了一次全面而深入的搜索,但是我找不到一个很好而又完整的资源来学习“新的” OpenGL,避免了过时的主题。 有人可以朝正确的方向前进吗?我知道C ++,我有10年的开发经验...在哪里可以找到好的资源?我想花时间在上面,并且我想深入学习。
73 opengl  assets 

9
OpenGL的GUI好吗?[关闭]
我开始使用Superbible和我从基本图形中学到的知识来学习Free技巧来学习FreeGLUT的技能。 为了从这种经验中获得更多收益,我想集成一个GUI来覆盖FreeGLUT所使用的一个,现在的问题是:这可能吗?我应该使用哪个库? 该库的一些特征: 开源的 多平台(Linux和Windows) C / C ++ 如果您有任何其他建议,请随时将其与您的答案一起发布给我。

5
如何避免纹理图集中出现纹理渗漏?
在我的游戏中,有一个由方块构成的Minecraft类地形。我从体素数据生成顶点缓冲区,并使用纹理图集显示不同块的外观: 问题在于,远方立方体的纹理会与纹理图集中的相邻图块进行插值。这会导致多维数据集之间出现颜色错误的线条(您可能需要以完整尺寸查看下面的屏幕截图,以查看图形缺陷): 现在,我使用这些插值设置,但尝试了每种组合,即使GL_NEAREST没有mipmapping也无法提供更好的结果。 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 我还尝试在纹理坐标中添加偏移量,以选择较小的瓷砖区域,但是由于不想要的效果取决于到相机的距离,因此无法完全解决问题。在很远的距离,条纹仍然会出现。 我该如何解决这种纹理渗出?由于使用纹理图集是流行的技术,因此可能有一种通用的方法。遗憾的是,由于注释中解释的某些原因,我无法更改为其他纹理或纹理阵列。

1
GLSL中的in /​​ out关键字
我不太了解如何在GLSL中使用in/ out关键字,并且google在特性上毫无帮助。 他们到底是做什么的?例如,如果要将每个顶点的变化变量集传递给片段着色器,我将如何使用它们? 从字面上看,我发现每个教程都使用varying/ attribute关键字,但这没有帮助。
46 opengl  glsl 

2
成功执行glLinkProgram之后,是否应该删除/分离着色器?
在拥有链接的程序并考虑防御性编程之后,是否应该删除和分离用于链接该程序的着色器? 如果是,那将释放任何资源吗?还是仅在glDeleteProgram调用之后才释放这些着色器对象? 编辑:只是为了澄清我在做什么(与答案一致): glCreateShader-> glShaderSource-> glCompileShader-> glCreateProgram-> glAttachShader-> glLinkProgram-> glDetachShader-> glDeleteShader->使用此着色器程序绘制->当我不再需要此着色器时,glDeleteProgram
45 opengl  shaders 

10
今天学习OpenGL 2.1没用吗?
我是3D OpenGL / DirectX世界的新手,我发现OpenGL 4.1和GLSL规范今天才发布。 我的一个朋友给了我《 OGL v2.1红皮书》,但是据我所读,3.x和4.x与2.x有很大的不同,现在已经淘汰了许多东西。 我可以使用这本书来开始学习3D和CG的基础知识,还是找到更新的副本更好?
44 opengl 

6
OpenGL是否适合2D游戏?
我已经自学了一段时间的OpenGL库,并想开始制作游戏。但是,为了更简单的介绍,我想从2D开始,例如自上而下的Pokemon风格的游戏。 这是一个好计划,还是OpenGL专为3D设计?
44 opengl  2d 

3
为什么教程使用不同的方法进行OpenGL渲染?
http://www.sdltutorials.com/sdl-opengl-tutorial-basics http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/ 这两个教程使用完全不同的方法来获得几乎相同的结果。第一种使用类似的东西glBegin(GL_QUADS)。第二个使用vertexBufferObjects基于GLEW的着色器之类的东西。但是结果是一样的:您获得了基本形状。 为什么存在这些差异? 第一种方法似乎更容易理解。复杂的第二种方法的优点是什么?


1
如何减少轮廓发光效果中的锯齿?
我正在尝试在《 Left 4 Dead》游戏中复制发光的轮廓效果。即使对象被遮挡,该效果也会使对象轮廓发光。这是效果的屏幕截图: 我可以在基于OpenGL的程序中复制这种效果。这是我目前正在做的: 创建颜色和深度纹理,其大小是屏幕尺寸的一半,用于渲染发光的对象 清除发光颜色/深度纹理。颜色清除为黑色。 对于每个发光对象,将其渲染为单色的发光纹理 对发光纹理执行可分离的高斯模糊 正常渲染全分辨率场景 将辉光纹理与正常场景相加,但是使用辉光深度纹理可以遮盖对象,仅留下模糊的轮廓。 这是我的方法的屏幕截图: 这是将发光纹理与场景结合在一起的片段着色器: uniform sampler2D glowColorTex; uniform sampler2D glowDepthTex; uniform sampler2D sceneColorTex; void main() { vec2 uv = gl_TexCoord[0].st; vec4 color = texture2D( sceneColorTex, uv); float depth = texture2D( glowDepthTex, uv).r; if(depth == 1.0) { color += 2.0 * texture2D( …
42 opengl  shaders  glsl  glow 

5
如何使用alpha混合和粒子实现良好的射击效果?
对OpenGL粒子效果使用以下设置: SRC: GL_SRC_ALPHA DST: GL_ONE 创建一种添加剂混合物,当它开始褪色为白色时,它在黑色背景上看起来很壮观,但在较亮的颜色上却很糟糕。 然后,我使用了alpha混合: SRC: GL_SRC_ALPHA DST: GL_ONE_MINUS_SRC_ALPHA 这允许使用其他背景而不影响颗粒的颜色,但是与添加剂共混物相比,颗粒本身看起来暗淡无光。如何使用alpha混合和粒子实现良好的射击效果? 添加剂: Α: 更新: 按照David的建议,我创建了一个单独的纹理,然后在绘制纹理之前对粒子效果使用了添加剂混合。这样做的问题是,在alpha = 0的纹理上绘制只会导致粒子的彩色部分出现在我的世界地图的前面,因为通常您使用的是黑色背景。诀窍是使用两个纹理。我创建了一个黑色纹理,然后在其上绘制了粒子。然后,我从该纹理中删除了粒子的alpha层,有效地删除了所有周围的纯黑色并淡化了部分可见的粒子,同时保留了在黑色背景上制作添加剂混合粒子时所期望的底层黑色。简而言之,这是一个艰苦的过程,但我最终到达了那里: 这是我发布流程的线程:http : //www.cocos2d-iphone.org/forum/topic/28707?replies=8#post-141528 视频:http : //www.youtube.com/watch?v=JptGbEO3b5E

5
游戏中的演员应该负责吸引自己吗?
我对游戏开发非常陌生,但对编程却不是。 我(再次)使用JavaScript的canvas元素在玩Pong类型的游戏。 我创建了一个Paddle具有以下属性的对象... width height x y colour 我也有一个Pong具有诸如...的属性的对象 width height backgroundColour draw()。 该draw()方法当前正在重置canvas,这就是出现问题的地方。 如果Paddle对象具有draw()负责其绘制的方法,或者draw()该Pong对象的负责负责其演员的绘制(我认为这是正确的术语,如果我不正确,请更正我)。 我发现在Paddle实例化两个对象Player和时,绘制自身会很有利Enemy。如果在没有Pong的draw(),我需要两次写类似的代码。 最佳做法是什么? 谢谢。

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.