Skip to content

Conversation

@kh-huawei
Copy link
Contributor

@kh-huawei kh-huawei commented Mar 12, 2025

What does this PR do?

This PR builds on PR 19231 from o3de.

This PR extends the sample RPI -> Mesh and implements a deferred rendering pipeline and material pipeline.

It uses a visibility buffer with one draw-call per mesh, and then renders the final image with one fullscreen draw-call per material-type (and shader options of the material). The sample viewer needs to be started with the cvar flag r_deferredMaterialRenderingEnabled set to true (e.g. by specifying r_deferredMaterialRenderingEnabled=true on the commandline), so the fullscreen draw-calls for the used material-types will be generated.

The pipeline does not use a Geometry buffer, but instead fetches the geometry data from the Mesh Buffers by using the MeshInfo - entries.

Skin Materialtype

The skin material-type was not implemented by the old deferred pipeline

Default Pipeline

small_default_pipeline_eye

Old deferred Pipeline

small_old_deferred_pipeline_eye

New Multimaterial deferred Pipeline

small_new_deferred_pipeline_eye

Material Canvas Emissive Material

Material canvas material that uses the world-position as emissive color. Using the world-position as base color would work, since the old deferred pipeline uses the EvaluateSurface - function of the material to determine the base color, it does not support any emissive color.

Default Pipeline

small_default_pipeline_material_canvas

Old deferred Pipeline

small_old_deferred-pipeline_material_canvas

New deferred Pipeline

small_new_deferred_pipeline_material_canvas

@kh-huawei kh-huawei force-pushed the deferred_materialpipeline branch from 216b4cc to c267382 Compare October 1, 2025 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant