feat(rendering): add transparent object support for reflection probe - #249
Open
xubing0906 wants to merge 13 commits into
Open
feat(rendering): add transparent object support for reflection probe#249xubing0906 wants to merge 13 commits into
xubing0906 wants to merge 13 commits into
Conversation
The effect file changes from the previous fix were not committed: add pass: copy-pass to technique 1 and rename sampler to probeInputTex.
Models with bakeToReflectionProbe disabled were still rendered into reflection probes in the custom/builtin pipeline.
xubing0906
force-pushed
the
v4.0.0-probe-transparency
branch
from
August 6, 2026 03:20
ffa403e to
005773c
Compare
Code Size Check Report
Interface Check Report! WARNING this pull request has changed these public interfaces:
@@ -5639,8 +5639,16 @@
* @zh 快速烘焙不会进行卷积。
*/
get fastBake(): boolean;
set fastBake(val: boolean);
+ /**
+ * @en Whether to support transparent objects in reflection probe rendering.
+ * When enabled, uses RGBA16F intermediate RT for correct alpha blending.
+ * @zh 是否支持半透明物体参与反射探针渲染。
+ * 开启后使用 RGBA16F 中间 RT 以支持正确的 alpha 混合。
+ */
+ get supportTransparency(): boolean;
+ set supportTransparency(val: boolean);
set cubemap(val: TextureCube | null);
get cubemap(): TextureCube | null;
get probe(): renderer.scene.ReflectionProbe;
/**
@@ -45497,9 +45505,9 @@
* @zh 设置probe信息
* @param probe
* @param frameBuffer
*/
- setUsageInfo(probe: renderer.scene.ReflectionProbe, frameBuffer: gfx.Framebuffer, reflectionCamera?: renderer.scene.Camera): void;
+ setUsageInfo(probe: renderer.scene.ReflectionProbe, frameBuffer: gfx.Framebuffer, outputFrameBuffer?: gfx.Framebuffer | null, reflectionCamera?: renderer.scene.Camera): void;
destroy(): void;
clearFramebuffer(camera: renderer.scene.Camera): void;
render(camera: renderer.scene.Camera): void;
activate(pipeline: ForwardPipeline, flow: ReflectionProbeFlow): void;
|
Contributor
Author
|
@cocos-robot run test cases |
|
@xubing0906, Please check the result of
Task Details
|
|
@xubing0906, Please check the result of
Task Details
|
… for probe transparency
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.
Re: cocos/cocos-engine#16297
Summary
supportTransparencyoption to ReflectionProbe component (CUBE mode)CC_USE_FLOAT_PROBE_OUTPUTshader macro to skip RGBE encoding and tone mapping in float probe pathChanges
supportTransparencyproperty,useFloatIntermediateRT(), RGBA16F intermediate texture lifecycle_buildProbeConvertPass), transparent queue (SceneFlags.BLEND) for probe rendering_renderConvertPassfullscreen quad inReflectionProbeStage, transparent object collection inRenderReflectionProbeQueueCC_USE_FLOAT_PROBE_OUTPUTbranch in 5 chunk files + skybox effect; newprobe-rgbe-convert.effect(technique 0 for Custom, technique 1 for Legacy)Test plan
supportTransparencyon a CUBE probe, verify transparent objects appear in reflectionsupportTransparency, verify behavior unchanged (transparent objects excluded, RGBE encoding direct)Continuous Integration
This pull request:
Compatibility Check
This pull request: