fix(info): surface RTSS-wired normal map textures (#510) - #512
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughExtended ChangesNormal-map recovery from RTSS user-object bindings
🎯 3 (Moderate) | ⏱️ ~20 minutes
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
0348743 to
f0f4dd1
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (1)
src/CLIPipeline_test.cpp (1)
348-350: ⚡ Quick winStrengthen this test to assert exact texture cardinality.
contains()checks are good, but this still passes if duplicates/unexpected textures are present. Add a size assertion to lock dedup behavior from both CONTENT_NAMED and UOB paths.Suggested diff
MeshInfo info = CLIPipeline::extractMeshInfo(entity, "with_normal.fbx"); + EXPECT_EQ(info.textures.size(), 2); EXPECT_TRUE(info.textures.contains("Boss_diffuse.png")); EXPECT_TRUE(info.textures.contains("Boss_normal.png")) << "RTSS-wired normal map should surface via the qtme.normal_map UOB hint";🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/CLIPipeline_test.cpp` around lines 348 - 350, Test currently only checks presence via EXPECT_TRUE(info.textures.contains(...)) which won't catch duplicates or extra entries; add an exact cardinality assertion (e.g. EXPECT_EQ(info.textures.size(), 2)) alongside the existing contains checks to lock down dedup behavior for textures coming from CONTENT_NAMED and the qtme.normal_map UOB hint so only "Boss_diffuse.png" and "Boss_normal.png" are present.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@src/CLIPipeline_test.cpp`:
- Around line 348-350: Test currently only checks presence via
EXPECT_TRUE(info.textures.contains(...)) which won't catch duplicates or extra
entries; add an exact cardinality assertion (e.g.
EXPECT_EQ(info.textures.size(), 2)) alongside the existing contains checks to
lock down dedup behavior for textures coming from CONTENT_NAMED and the
qtme.normal_map UOB hint so only "Boss_diffuse.png" and "Boss_normal.png" are
present.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 28b05535-4f55-45ac-a2fb-1882f70e2423
📒 Files selected for processing (2)
src/CLIPipeline.cppsrc/CLIPipeline_test.cpp
extractMeshInfo only walked CONTENT_NAMED TextureUnitStates, which covers every PBR slot MaterialProcessor binds as a plain TUS (diffuse, albedo, metallic, roughness, ao, emissive) but misses the normal map. The normal map is routed through RTSS's render-state side channel (see RTShaderHelper::applyNormalMap), so it never appears as a base- pass TUS, even though the editor renders it. Recover it from the qtme.normal_map UOB hint the importer leaves on the pass — the same hint slice #507 added so FBX export could round- trip the normal map. The walk reads the Any via Ogre::any_cast and adds the texture name to the dedup set, so qtmesh info / scan engine / overlay all see it. Unit test: build a triangle entity, stash the UOB hint without adding a TUS, assert the texture surfaces. Verified locally: $ qtmesh info Rumba\ Dancing.fbx Textures: Boss_diffuse.png, Boss_normal.png Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
f0f4dd1 to
0f977af
Compare
|



Summary
Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
Bug Fixes
Tests