Vulkan POM: lightmapped PBR + normalHeightMap height source#55
Draft
Vulkan POM: lightmapped PBR + normalHeightMap height source#55
Conversation
- Remove lightmap disable for POM; base UV displacement stays on texcoord0. - Add pom_height_source specialization (ORM R vs normal map alpha). - Set pom_height_source from normalHeightMap in pipeline def; reorder POM gating after physical_texture_set assignment. - Regenerate SPIR-V blobs; update RENDERERS.md. Co-authored-by: Tim Fox <timfox@outlook.com>
- MSYS2: pacman -Sy before install; --disable-download-timeout for curl flakiness - Android matrix: retry sdkmanager NDK install; broader deps cache key - Android CMake: retry configure (clean tree) and build on transient network failures - android-apk: retry sdkmanager bundle + gradlew assembleDebug - macOS: retry brew install for mirror/CDN flakes Co-authored-by: Tim Fox <timfox@outlook.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes POM follow-ups from the materials roadmap:
Lightmapped PBR: POM is no longer force-disabled when a lightmap is bound. Parallax still displaces base UVs (
texcoord0); lightmaps continue to uselightmapTexCoord()/sampleLightmap()on their own set.Dedicated height without tying to ORM occlusion: Stages that use
normalHeightMapnow ray-march height from the normal map alpha (specializationpom_height_source == 1), so height can be authored independently of packed ORM R (occlusion). ORM-based height remains the default when a metalness/roughness physical map is bound (physical_texture_set == 0).Pipeline correctness: POM enablement is computed after
physical_texture_setis assigned, so spec-gloss (physical_texture_set == 1) no longer incorrectly enabled POM.CI hardening (this PR)
pacman -Sybefore install;--disable-download-timeoutto reduce spurious curl timeouts when installing SDL/curl/etc.sdkmanagerNDK install; broaderandroid-depscache key (cmake/**,android/**, workflow); retrycmakeconfigure (clean build dir) andcmake --buildon transient failures.sdkmanagerfor NDK/CMake/platforms/build-tools; retry./gradlew assembleDebug.brew installfor CDN/mirror flakes.Files
vk_create_pipeline.c/vk_create_pipeline.h/vk.h—pom_height_sourcein frag spec +Vk_Pipeline_Def.pom_height_sourcetr_shader.c— setdef.pom_height_sourcefromnormalMapType == PHYS_NORMALHEIGHTgen_frag.tmpl+ regenerated SPIR-V (shader_data.c, meta)docs/RENDERERS.md— updated POM paragraph.github/workflows/build.yml— CI resilienceValidation
./scripts/compile_shaders.sh --apply./scripts/compile_engine.sh vulkanctestinbuild-vk-Release(all passed)