AI助手支持GPT4.0
小游戏+threejs或者webgl 不兼容iphone吗
跑了个threejs的demo,就画一个圆点儿,android和模拟器和浏览器都可以,就iphone不行。就几行代码:
var gl = canvas.getContext('webgl');var VSHADER_SOURCE = 'void main() {n' + ' gl_Position = vec4(0.0, 0.0, 0.0, 1.0);n' + ' gl_PointSize = 20.0;n' + '}n'; var FSHADER_SOURCE = 'void main() {n' + ' gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);n' +'}n';var program = gl.createProgram();var vShader = gl.createShader(gl.VERTEX_SHADER);var fShader = gl.createShader(gl.FRAGMENT_SHADER);gl.shaderSource(vShader, VSHADER_SOURCE);gl.shaderSource(fShader, FSHADER_SOURCE);gl.compileShader(vShader);gl.compileShader(fShader);gl.attachShader(program, vShader);gl.attachShader(program, fShader);gl.linkProgram(program);gl.useProgram(program);gl.clearColor(0.0,0.0,0.0,1.0);gl.clear(gl.COLOR_BUFFER_BIT);gl.drawArrays(gl.POINTS, 0 ,1);
在我的iphone7 系统是ios13.x 就是一片黑色,没有红色
Run a threejs demo and draw a dot. Android and emulator and browser are OK, but iPhone is not. Just a few lines of code: VAR GL = canvas.getContext ('webgl');var VSHADER_ SOURCE = 'void main() {n' + ' gl_ Position = vec4(0.0, 0.0, 0.0, 1.0);n' + ' gl_ PointSize = 20.0;n' + '}n'; var FSHADER_ SOURCE = 'void main() {n' + ' gl_ FragColor = vec4(1.0, 0.0, 0.0, 1.0);n' +'}n';var program = gl.createProgram (); / / create vertex shader var vshader = gl.createShader ( gl.VERTEX_ Shader); / / create slice shaders var fshader = gl.createShader ( gl.FRAGMENT_ Shader); / / the shader container is bound to the shader gl.shaderSource (vShader, VSHADER_ SOURCE); gl.shaderSource (fShader, FSHADER_ Source); / / compile GLSE into browser code gl.compileShader (vShader); gl.compileShader (fshader); / / add the shader to the program gl.attachShader (program, vShader); gl.attachShader (program, fShader); //After the link operation is executed, you can modify the source code of the shader at will, / / recompiling the shader will not affect the whole program, unless the program is relinked gl.linkProgram (program); / / load and use the linked program gl.useProgram (program); gl.clearColor (0.0,0.0,0.0,1.0); gl.clear ( gl.COLOR_ BUFFER_ BIT); gl.drawArrays ( gl.POINTS In my iPhone 7 system, IOS 13. X is black, not red
threeJS会自动开启帧循环吗?,如果不会自动开启那就手动开启帧循环,因为真机环境必须逐帧调用