iPad现在支持OES_texture_half_float
扩展.不幸的是,我无法将浮点纹理绑定到帧缓冲对象.这是我的尝试:
GLuint textureHandle;
glGenTextures(1, &textureHandle);
glBindTexture(GL_TEXTURE_2D, textureHandle);
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 256, 256, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
assert(GL_NO_ERROR == glGetError()); // this passes
GLuint fboHandle;
glGenFramebuffers(1, &fboHandle);
glBindFramebuffer(GL_FRAMEBUFFER, fboHandle);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureHandle, 0);
assert(GL_FRAMEBUFFER_COMPLETE == glCheckFramebufferStatus(GL_FRAMEBUFFER)); // this asserts
Run Code Online (Sandbox Code Playgroud)
更换时,该工作正常GL_HALF_FLOAT_OES使用GL_UNSIGNED_BYTE.
这是iOS的限制还是我做错了什么?
有人可以告诉我如何在不使用 Three.js 或任何其他工具包的情况下在 WebGL 中绘制虚线吗?只是简单的 WebGL。我对 WebGL 很陌生,我似乎找不到这个问题的答案。
我正在使用基于纹理的DOT3照明来实现老式iPhone上的凹凸贴图,我想知道是否有一种偷偷摸摸的方式使它看起来正确,即使视点发生变化.
对于"真实"光照,法线通过逆模型 - 视图矩阵进行变换.使用基于纹理的DOT3照明,没有变换.
使用基于着色器的凹凸贴图,法线贴图位于切线空间中.使用DOT3照明时,法线贴图需要在眼睛空间中.只有当您有一个固定的视点,或者您的几何形状恰好是一个平面时,这是可以的.
我应该接受这个作为DOT3照明的另一个限制吗?既然它也无法处理镜面反射,我开始质疑它究竟是多么有用.
我的网络应用程序需要定期检查服务器是否已启动。这允许用户以任一顺序启动服务器和客户端。
为此,我只是WebSocket从setTimeout处理程序内部调用构造函数。
从使用的角度来看,这种策略效果很好,但对我开发人员来说很烦人,因为我在 Chrome 中看到很多控制台错误:
remote.html:194 WebSocket connection to 'ws://localhost:8082/' failed: Connection closed before receiving a handshake response
remote.html:194 WebSocket connection to 'ws://localhost:8082/' failed: Connection closed before receiving a handshake response
remote.html:194 WebSocket connection to 'ws://localhost:8082/' failed: Connection closed before receiving a handshake response
Run Code Online (Sandbox Code Playgroud)
这些并不是真正的错误,因为我的 Web 应用程序在服务器不可用的情况下完全没问题。它重复调用WebSocket构造函数(MDN)只是为了检查服务器是否已经启动。
有一个更好的方法吗?对于上下文,我的 Web 应用程序是在设备上运行的本机 C++ 应用程序的“远程控制”。