View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006082 | DarkRadiant | Renderer | public | 27.08.2022 07:56 | 13.01.2024 05:32 |
Reporter | greebo | Assigned To | greebo | ||
Priority | normal | Severity | normal | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Product Version | 3.1.0 | ||||
Target Version | 3.2.0 | Fixed in Version | 3.2.0 | ||
Summary | 0006082: Implement sorting of Interaction Stages | ||||
Description | The game sorts bump/diffuse/specular stages to process them in a certain order when drawing interaction passes. DarkRadiant only supports one interaction pass per material right now. | ||||
Additional Information | See DarkRadiant's current implementation in OpenGLShader::constructLightingPassesFromMaterial() See game code: Material::SortInteractionStages() and InteractionStage::DrawInteractions() Stages are sorted bumps first, then diffuses, then speculars. When drawing interactions a new draw call is queued/submitted for every new stage whose type is already active in that interaction, plus the round-up draw call. For example, the sorted stage setup Bump Diffuse1 Diffuse2 Specular will result in the following three draw calls: Bump + Diffuse1 + _black Bump + Diffuse2 + _black Bump + Diffuse2 + Specular The second draw call is kind of unintuitive, it is triggered when encountering the specular map (with the _black specular already in place, the specular counts as "second" stage of that type). | ||||
Tags | No tags attached. | ||||
An example material for testing: textures/glass/two_diffuse_one_bump_one_spec { diffusemap textures/darkmod/glass/victorian01_d { blend diffusemap map textures/darkmod/decals/graffiti/food_not_works rgb 0.7 } bumpmap textures/darkmod/glass/dull_opaque01_local specularmap textures/darkmod/metal/flat/simple_grey01_s } |
|
Comparison screenshots | |
DarkRadiant: master 33e16185 27.08.2022 12:17 Details Diff |
0006082: Start rearranging the lighting pass construction code (WIP) |
Affected Issues 0006082 |
|
mod - include/ishaderlayer.h | Diff File | ||
mod - radiantcore/rendersystem/backend/OpenGLShader.cpp | Diff File | ||
DarkRadiant: master 98473c29 27.08.2022 13:45 Details Diff |
0006082: Handle interaction stages in a similar way as the TDM engine is doing it. Multiple interaction stages are sorted and grouped very late (right before the draw calls) in a single loop. Imply that any material without bump stage has is rendered with an implicit _flat map. |
Affected Issues 0006082 |
|
mod - radiantcore/rendersystem/backend/InteractionPass.cpp | Diff File | ||
mod - radiantcore/rendersystem/backend/InteractionPass.h | Diff File | ||
mod - radiantcore/rendersystem/backend/OpenGLShader.cpp | Diff File | ||
mod - radiantcore/rendersystem/backend/OpenGLShader.h | Diff File | ||
mod - radiantcore/rendersystem/backend/OpenGLState.h | Diff File | ||
mod - radiantcore/rendersystem/backend/RegularLight.cpp | Diff File | ||
mod - radiantcore/rendersystem/backend/RegularLight.h | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
27.08.2022 07:56 | greebo | New Issue | |
27.08.2022 07:57 | greebo | Additional Information Updated | |
27.08.2022 07:57 | greebo | Status | new => confirmed |
27.08.2022 07:57 | greebo | Relationship added | related to 0006039 |
28.08.2022 08:10 | greebo | Changeset attached | => DarkRadiant master 33e16185 |
28.08.2022 08:10 | greebo | Changeset attached | => DarkRadiant master 98473c29 |
28.08.2022 08:11 | greebo | Assigned To | => greebo |
28.08.2022 08:11 | greebo | Status | confirmed => assigned |
28.08.2022 08:11 | greebo | Target Version | => 3.2.0 |
28.08.2022 08:11 | greebo | Status | assigned => resolved |
28.08.2022 08:11 | greebo | Resolution | open => fixed |
28.08.2022 08:11 | greebo | Fixed in Version | => 3.2.0 |
28.08.2022 08:13 | greebo | Note Added: 0015215 | |
28.08.2022 08:28 | greebo | Note Added: 0015216 | |
28.08.2022 08:28 | greebo | File Added: grafik.png | |
28.08.2022 08:28 | greebo | File Added: grafik-2.png | |
13.01.2024 05:32 | greebo | Status | resolved => closed |