我在Three.js的许多粒子示例中遇到了一个非常奇怪的着色器错误。在OSX 10.7的最新Chrome和Firefox中,gl_PointCoord为每个片段返回(1,0)。这也可以在一些包含的例子中找到。具体而言,Particle Billboards示例,Particle Billboard colors示例和Particle Sprites示例不起作用。它们对屏幕没有任何影响。但是,Custom Attributes示例工作正常,尽管几乎完全相同的代码。
我在自己的软件上运行兼容性检查时发现了这个错误。我写了一个着色器,它使用粒子渲染文本精灵。这在10.6,Windows和Linux中运行良好。但是,10.7什么都没有。通过设置gl_FragCOlor = vec4进一步调试(gl_PointCoord,0。,1。);显示所有粒子都呈现为纯红色方块,而不是预期的红绿渐变。
我一直试图确定使自定义属性工作的示例之间的区别究竟是什么,但不是粒子广告牌,但我还没有取得很大进展。除了借用朋友的笔记本电脑之外,缺乏测试平台会加剧这种情况。这是一个已知的操作系统错误吗?