claygl/example/largegeometry.ts
Yi Shen 0030d7db95
Switch to WebGL 2.0 (#136)
* wip: upgrade to webgl2

* update shaders to version 300

* fix index for texture must be constant in webgl 2

* remove npot

* fix naming conflicts of using texture previously

* fix wrong internal format in float textures.

* fix depth texture format

* fix texture enabled define

* fix instancing

* fix some cases

* fix some case use extension

* fix frag depth

* tweak

* generate mimap for NPOT texture

* remove debugger code

* fix alchemyao case

* fix ssr case

* not generate mipmap in compositor by default.
2023-02-15 22:09:08 +08:00

45 lines
927 B
TypeScript

import {
Shader,
Renderer,
Scene,
PerspectiveCamera,
SphereGeometry,
Material,
createWireframeShader,
Mesh,
startTimeline
} from 'claygl';
const renderer = new Renderer({
canvas: document.getElementById('main') as HTMLCanvasElement
});
const scene = new Scene();
const camera = new PerspectiveCamera({
aspect: renderer.getViewportAspect(),
far: 500
});
const sphere = new SphereGeometry({
widthSegments: 400,
heightSegments: 200
});
sphere.generateUniqueVertex();
sphere.generateBarycentric();
const material = new Material(createWireframeShader(), {
transparent: true,
depthTest: false
});
material.set('lineWidth', 2);
camera.position.set(0, 1, 2);
camera.lookAt(scene.position);
const sphereMesh = new Mesh(sphere, material);
scene.add(sphereMesh);
renderer.render(scene, camera);
startTimeline(() => {
renderer.render(scene, camera);
sphereMesh.rotation.rotateY(Math.PI / 500);
});