Comments (2)
I figured that this is merely an issue within OGL and not related to the WebGL extensions.
The Primitive generators generate index buffers of type Uint16Array
and hence assume that the index array will never need to hold integers above 2^16, which is rather conservative.
The following lines could be enhanced with a ternary to check for the required array type and hence solve the issue relatively elegantly without defaulting to Uint32Array
.
In any primitive generator class:
const index = new Uint16Array(numIndices * 6);
We could check whether the maximum possible index value will go over 2^16, and if so generate a Uint32Array
.
In the geometry.js file:
attr.type = attr.type || (key === 'index' ? this.gl.UNSIGNED_SHORT : this.gl.FLOAT)
We need to make sure that if the index array is 32bit, this.gl.UNSIGNED_INT
is passed in.
from ogl.
Thanks a lot for your detailed explanation. Great addition.
from ogl.
Related Issues (20)
- Type definition for GLTF seems inaccurate HOT 2
- Help with maintaining perspective ratio HOT 2
- Problem using quaternion rotations HOT 6
- GPGPU problems
- Projecting mouse coordinates onto an infinite plane HOT 1
- Flowmap question HOT 1
- Issues with geometry types HOT 1
- HTMLCanvasElement missing from ImageRepresentation HOT 1
- Source code in ts HOT 2
- WebXR hybrid renderer HOT 2
- Problems with Tube and straight path HOT 1
- Integrating OGL as part of a wider rendering system HOT 1
- Duplicate GLTF object HOT 5
- GPGPU particles going out of control
- FLOAT and UNSIGNED_INT textures in OGL at the same time HOT 2
- GLTF Alpha blend material issues HOT 4
- GLTF transparency issues HOT 2
- Texture `.width` and `.height` are undefined after texture load HOT 2
- Support for `manual` camera prop (or configurable `onResize` canvas handler)
- Add support for shape keys animation HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ogl.