Build > Texture: Firestorm-style texture panel #558

Closed
TheSlowly wants to merge 0 commits from TheSlowly/Slipstream:texture-panel-improvements into main
Contributor

Ports Firestorm's texture/material panel to the Texture tab. The old one is still there if you set FSUseNewTexturePanel to false, but may or may not become deprecated and removed in the future

The main reason is that you can see every texture at a glimpse, and edit the Blinn-Phong maps without stripping the PBR material first. Diffuse, normal and specular sit together, and the PBR maps get their own tab
As someone that works heavily with both Blinn and PBR, it is a significant quality of life improvement

On the Blinn-Phong tab, selected prims you can modify render without their PBR material, so you can see what you're editing. Unlike Firestorm, this is purely visual. Material IDs, overrides and texture transforms stay as they are, and nothing goes to the sim. Normal rendering comes back when you switch tabs, change selection or close the build floater

Ports Firestorm's texture/material panel to the Texture tab. The old one is still there if you set `FSUseNewTexturePanel` to false, but may or may not become deprecated and removed in the future The main reason is that you can see every texture at a glimpse, and edit the Blinn-Phong maps without stripping the PBR material first. Diffuse, normal and specular sit together, and the PBR maps get their own tab As someone that works heavily with both Blinn and PBR, it is a significant quality of life improvement On the Blinn-Phong tab, selected prims you can modify render without their PBR material, so you can see what you're editing. Unlike Firestorm, this is purely visual. Material IDs, overrides and texture transforms stay as they are, and nothing goes to the sim. Normal rendering comes back when you switch tabs, change selection or close the build floater
Port Firestorm's newer texture/material panel (FSPanelFace,
panel_fs_tools_texture.xml). Diffuse, normal and specular maps and the PBR
maps are each shown together, and Blinn-Phong textures stay editable while a
PBR material is assigned. LLFloaterTools builds FSPanelFace or the previous
LLPanelFace depending on FSUseNewTexturePanel (default on), and dispatches
drop channels and createDefaultMaterial to whichever panel exists.

Choosing the Blinn-Phong tab previews the selected modifiable prims without
their PBR material. Unlike Firestorm, the preview never touches material IDs,
overrides or texture transforms: LLViewerObject only detaches the render-side
GLTF pointers, blocks the Vulkan ingest and local material paths from
reattaching them, and holds incoming overrides until restore. Nothing is sent
to the simulator. Selection changes re-sync the preview, and switching tabs,
hiding the panel or closing the build floater restores normal rendering.
Re-ingest is triggered through markTextured.

Also: Copy to Blinn-Phong and the newer copy/paste permission checks move to
the new panel; drag-and-drop and texture-picker applies target Blinn-Phong
while previewing; Stretch Textures and the live material editor keep updating
PBR transforms during a preview.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Contributor

Noticing a layout issue with this, gonna address it soon

Noticing a layout issue with this, gonna address it soon
The button sat in the top-right strip of the PBR parameters, which the
panel-wide Glow spinner is drawn over. Move it next to the (O)RM picker
and label it "Copy to Blinn" so it fits there; the tooltip keeps the full
description.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The glTF to legacy transform conversion was only right without rotation:
it kept the rotation angle as-is, so any rotated PBR transform landed
rotated and offset wrongly. Fit the legacy rotation, repeats and offset to
the matrix the renderer actually uses instead. This is exact for no
rotation, uniform scale or right-angle rotations, and for non-uniform scale
with rotation (which Blinn-Phong cannot represent) splits the error between
both axes and keeps the face centre in place. Applied to both the new panel
and LLPanelFace.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Texture entry offsets are clamped to -1..1 when sent to the simulator, but
the converted offsets could fall outside that range (for example 1.5 for a
4x repeat), so the face looked right locally and arrived shifted. Wrap the
offsets by whole repeats into -0.5..0.5, which renders identically.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Contributor

Branch is ready to go

Branch is ready to go
Owner

Merged into main in bec4494568. The PR conflicted with #557 in settings.xml after #557 landed; both sets of settings were kept. Thanks!

Merged into `main` in bec4494568. The PR conflicted with #557 in `settings.xml` after #557 landed; both sets of settings were kept. Thanks!
sky_line closed this pull request 2026-10-09 00:32:54 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream!558
No description provided.