Skip to content

Archive

Category: OpenGL
上一个帖子提到了在Catalyst 11.4上,KlayGE的OpenGL插件黑屏的情况,现已查明是因为AMD和NVIDIA的GLSL不兼容的原因。NV的驱动上fragment shader可以定义varying out vec4 v_gl_FragData[8]这样的输出数组,但AMD的驱动上不支持。所以我再次修改GLSL生成器,把数组拆成独立变量,解决了问题。但实际上AMD的GLSL预定义了out vec4 gl_FragData[],所以变成预定义可以,自定义不行的情况。估计得等以后他们自行解决吧,目前只能先绕开了。
上一个帖子提到了在NV 270.xx驱动上,OpenGL MRT出问题的情况。经过一些单元测试,我发现那不是个驱动的bug,而是270系列驱动对GLSL的实现更加严格了。在GLSL 1.3,也就是OpenGL 3.0上,gl_FragColor和gl_FragData都被标记为deprecated。原本的驱动仍旧提供了对它们的支持,但270.xx去掉了gl_FragData,所以在需要MRT的时候就得自己定义varying out了。在对GLSL生成器做些许修改之后,KlayGE在OpenGL插件上的MRT都恢复了正常。
继前几天的270.51 Beta之后,NVIDIA正式发布了270.61 WHQL。这标志着NVIDIA已经开启了270系列驱动的大门。这款驱动支持GeForce 6以来的所有桌面Geforce GPU,以及ION桌面GPU。在API方面,它在Geforce 400+的显卡上支持OpenGL 4.1,之前的显卡只支持OpenGL 3.3。在OpenGL扩展方面,和之前的270.51 Beta一样。下载链接: Vista / Win7 64-bit Vista / Win7 32-bit XP 32-bit XP 64-bit 在使用的过程中,我发现270系列驱动在OpenGL下的一些问题。首先是它去掉了对GL_EXT_transform_feedback的支持。所以要么退回到GL_NV_transform_feedback,要么前进至OpenGL 3.0提供的transform feedback。另一个可能是bug的地方在于,MRT虽然可以调 ...
最早出现的270系列驱动是GPU Computing注册开发人员才能下载到的CUDA 4.0 RC驱动。现在270.51 BETA已经可以从NVIDIA网站下载了: Win7/Vista 64 Bit Win7/Vista 32 Bit WinXP 64 Bit WinXP 32 Bit 在270系列驱动里,除了支持CUDA 4.0之外,另一个有意义的功能是对OpenGL ES的增强。自从OpenGL 4.1明确提出对OpenGL ES的支持以来,AMD和NVIDIA的驱动都加入了对OpenGL ES的支持。实际上AMD在那之前就已经部分支持了。这次NV新增的扩展有27个: GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888 GL_EXT_texture_type_2_10_10_10_REV GL_NV_alpha_test GL_NV_blend_minmax GL_NV_complex_primitives GL ...
在GLIntercept 0.5了那么多年之后,1.0 Beta终于出了。GLIntercept在功能上类似gDEBugger,可以拦截OpenGL 1.0-2.1的函数调用,然后: 把所有的OpenGL函数调用保存到文本或者XML格式,用来记录每一帧。 在运行期显示和编辑shader。支持ARB VP/FP/GLSL和NV VP/FP。 改摄像机。自由浏览发给显卡的几何信息,打开/关闭线框模式/背面剔除/视锥。 保存和跟踪纹理。(支持绑在1D、2D、3D、NVRect和p-buffer上的纹理。)可以保存成TGA、PNG和JPG格式。 保存和跟踪shader/program。0.41开始支持ARB VP/FP/GLSL和NV VP/FP。 保存和跟踪display list。 在render call之前和之后保存OpenGL frame buffer (color/depth/stencil)。可以保存之前和 ...
上个月的一篇帖子提到了ATI OpenGL驱动的一些陷阱,随着ATI驱动每个月的新版本不断发布,这些问题是否得到改善呢? glBlitFramebufferEXT 情况一样,没有任何变化,还是没法用:(。 glClearBuffer* WTF,没有任何变化,还是没法用。 glBeginConditionalRender 已经改进!如果glBeginConditionalRender和glEndConditionalRender完全严格地配对使用,就能正常工作,不会造成恐怖的死锁。如果一旦不小心没有遵循配对使用的规则,照死锁不误。NVIDIA的驱动上不配对也没发生任何错误,虽然确实不该那么用。 新发现的问题 在改进海洋渲染的过程中,displacement texture从ABGR16f改成了ABGR8,结果在ATI OpenGL的情况下一片平坦。经过其他测试后的结 ...
前几天的帖子提到过gDebugger的新版本是免费的。现在,新版本5.8终于来了,只要注册就可以免费使用1年,也不是永久免费的。下载地址见:http://www.gremedy.com/free_license.php。
盼了这么多年之后,Graphic Remedy终于宣布gDEBugger不再收费!正式的免费版本在月底发布,在此之前可以使用官方修改过的license文件:Free gDEBugger license file。
在下一版的KlayGE中,D3D9插件光荣退休,OpenGL插件将要取代它在WinXP下的位置。众所周知,ATI的OpenGL驱动一直毛病众多。因此解决OpenGL插件在ATI卡上出现的错误成了当务之急。本文就讨论一下在增强OpenGL插件的过程中遇到的陷阱及其解决方法。测试的显卡为HD5870,所有问题在9.12-10.10的驱动中都会出现。 glBlitFramebufferEXT 在以前的版本里,OpenGL插件在ATI显卡上的文字显示总是乱码。一开始怀疑是vbo或者shader造成的,最后定位在texture本身。在texture的局部拷贝过程中,OpenGL插件用的是GL_EXT_framebuffer_blit扩展的glBlitFramebufferEXT。ATI驱动对GL_EXT_framebuffer_blit的支持似乎并不完善,结果是虽然什么错误都没发生, ...
[zh] 支持OpenGL 4.1 支持最新扩展 Bug修正 请参见下载页面。 [/zh] [en] Support OpenGL 4.1 Support new extensions Bug fixed Please see Downloads. [/en]