【发布时间】:2021-05-23 22:20:59
【问题描述】:
我在 Expo 的官方网站上尝试过这个例子,但它没有显示 3D 对象。只有两个完全不动的方格
https://docs.expo.io/versions/latest/sdk/gl-view/
import React from 'react';
import { View } from 'react-native';
import { GLView } from 'expo-gl';
export default function App() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<GLView style={{ width: 300, height: 300 }} onContextCreate={onContextCreate} />
</View>
);
}
function onContextCreate(gl) {
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
gl.clearColor(0, 1, 1, 1);
// Create vertex shader (shape & position)
const vert = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(
vert,
`
void main(void) {
gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
gl_PointSize = 150.0;
}
`
);
gl.compileShader(vert);
// Create fragment shader (color)
const frag = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(
frag,
`
void main(void) {
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
}
`
);
gl.compileShader(frag);
// Link together into a program
const program = gl.createProgram();
gl.attachShader(program, vert);
gl.attachShader(program, frag);
gl.linkProgram(program);
gl.useProgram(program);
gl.clear(gl.COLOR_BUFFER_BIT);
gl.drawArrays(gl.POINTS, 0, 1);
gl.flush();
gl.endFrameEXP();
}
我希望能够使用 Expo 显示 3D 对象(可能是盘子/食物)。
【问题讨论】:
标签: react-native 3d expo