View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000175 | Gorilla3D | Feature Request | public | 2021-08-26 11:15 | 2021-08-26 11:16 |
Reporter | administrator | Assigned To | administrator | ||
Priority | high | Severity | feature | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 0.8.3.x | ||||
Target Version | 0.8.3.x | Fixed in Version | 0.8.3.x | ||
Summary | 0000175: Feature: Support for mulitple UniformBufferObjects (UBO) inside a single material | ||||
Description | We do now support multiple uniform buffer objects (UBO) besides the default "ShaderData" structure. Those are not longer managed as single global ubo, but instead inside of the shader program. You can now create your own packed record structure (in std140 compatible format) and register it as UBO | ||||
Steps To Reproduce | override the protected DoUpdateShaderUniformBuffers() function: type // fields are aligned in 16 bytes TMyParams = packed record FieldA : Single; Reserve : Array[0..2] of Single; // alignment VectorA : TVector3D; MatrixA : TMatrix3D; PointA : TPoint3D; Reserve2: Single; end; procedure TMyMaterial.DoUpdateShaderUniformBuffers(const Context: TContext3D; AProgram : TShaderProgram); begin if not Assigned(AProgram) then Exit; inherited; AProgram.RegisterUniformBuffer('MyParams', @FMyParams, SizeOf(FMyParams)); end; | ||||
Tags | No tags attached. | ||||
Delphi-Version | 10.4.2 | ||||
OpenGLVersion | OpenGL 4.3 | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2021-08-26 11:15 | administrator | New Issue | |
2021-08-26 11:15 | administrator | Status | new => assigned |
2021-08-26 11:15 | administrator | Assigned To | => administrator |
2021-08-26 11:16 | administrator | Status | assigned => resolved |
2021-08-26 11:16 | administrator | Resolution | open => fixed |
2021-08-26 11:16 | administrator | Fixed in Version | => 0.8.3.x |
2021-08-26 11:16 | administrator | Note Added: 0000191 |