Comments (3)
Sure, I currently have implementation of MultiDraw*
in progress, this will come next. The builtin shaders will then also need to be updated to support instancing, I don't yet know whether to use uniform arrays or instanced attributes for per-instance data, need to research on that a bit more.
As for the glVertexAttribDivisor
, I planned to have it as a new function in Mesh
, rather than per-attribute option, because all attributes in given interleaved buffer will share the same divisor
value. So something like this:
const UnsignedInt divisor = 1;
mesh.addVertexBuffer(vertexBuffer, 0, MyShader::Position{}, MyShader::Normal{})
.addVertexBufferInstanced(divisor, transformBuffer, 0,
MyShader::TransformationMatrix{},
MyShader::NormalMatrix{});
from magnum.
Right now i'm in a process of slowly transfering my app from OSG to Magnum, which uses instanced render combined with transform feedback at one point, so i might just implement this on my own, as it doesn't look too overcomplicated.
from magnum.
Instanced drawing is done in 20df20d, vertex attribute divisor in 71a5766. Now it is also merged into compatibility
branch. I also did some changes to Mesh API and MeshTools functions to make them less confusing, mainly when working with per-instance (and not per-vertex) data.
from magnum.
Related Issues (20)
- Update vcpkg packages to include EmscriptenApplication on Emscripten HOT 2
- Failing to link Magnum::Math? HOT 3
- few compile warnings HOT 1
- How to point to a local installation of `corrade` without using the bootstrap project? HOT 3
- undefined symbol: flextGLInit HOT 4
- Image rendered in gray since 1847c72 HOT 18
- Emscripten 3.1.21+ crashes EmscriptenApplication: "AsciiToString is not defined" HOT 4
- How to build from source on MSYS2 MINGW64? HOT 1
- keyReleaseEvent not triggered after printscreen on OSX HOT 6
- Conversion from CubicHermite to Bezier is wrong
- Mixing with raw openGL calls and Context::current().resetState() HOT 3
- C Bindings HOT 5
- WebGPU backend HOT 2
- Parallel rendering with glb files HOT 5
- Conflict with near and far Macros When Including WinSock2.h After Matrix4.h HOT 2
- emsdk compile error: typedef redefinition with different types HOT 4
- Memory leak when destroying GL::Mesh HOT 3
- Linking in Emscripten >= 3.1.52 doesn't work HOT 4
- Some trouble with LineGL3D shader when camera is close HOT 1
- Segmentation fault with nullptr instruction in AbstractShaderProgram at Cross-Compile HOT 21
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 magnum.