Skip to content

feat: expose new engine properties in editor UI#1754

Merged
kpal81xd merged 2 commits intomainfrom
expose
Feb 13, 2026
Merged

feat: expose new engine properties in editor UI#1754
kpal81xd merged 2 commits intomainfrom
expose

Conversation

@kpal81xd
Copy link
Contributor

@kpal81xd kpal81xd commented Feb 13, 2026

Fixes #986, fixes #1245, fixes #1324, fixes #286

What's Changed

Expose the following engine properties that were previously missing from the Editor UI, verified against the engine source for correct types, defaults, and property names:

Material:

Components:

Scene Settings:

Each property includes:

  • Inspector UI attributes with correct types matching the engine
  • Attribute reference definitions (tooltips/docs)
  • Asset and entity migration logic for backwards compatibility
  • Visibility gating via pathExists where engine support is conditional
  • Editor-side application of skyDepthWrite to scene.sky.depthWrite (engine's applySettings doesn't handle it yet)

Requires a companion backend schema PR (deployed first).


Created via GitHub MCP integration.

Expose the following engine properties that were previously missing from
the Editor frontend:

Material:
- twoSidedLighting (boolean) — backface normal calculation
- diffuseDetailMap / normalDetailMap — detail texture maps with UV,
  channel, offset, tiling, rotation sub-properties
- diffuseDetailMode (string enum) — detail map blend mode
- normalDetailMapBumpiness (slider) — detail normal intensity

Components:
- light.penumbraSize (number) — PCSS soft shadow edge size
- rigidbody.rollingFriction (number) — torsional friction
- gsplat.unified (boolean) — unified splat rendering path

Scene Settings:
- render.skyDepthWrite (boolean) — sky depth buffer writes

Includes attribute references, asset/entity migrations, visibility
gating for engine feature availability, and editor-side application
of skyDepthWrite to scene.sky.depthWrite.

Refs #1750

Co-authored-by: Cursor <cursoragent@cursor.com>
@mvaligursky
Copy link
Contributor

  • I'm not sure we want to expose detail textures at all (see comment in that PR)
  • and also unified gsplat component setting

@kpal81xd kpal81xd marked this pull request as ready for review February 13, 2026 14:07
@kpal81xd
Copy link
Contributor Author

  • I'm not sure we want to expose detail textures at all (see comment in that PR)
  • and also unified gsplat component setting

Will remove those two from being exposed

Copy link
Contributor

@mvaligursky mvaligursky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all seems ok, but added one comment that we ideally address

Expose the following engine properties that were previously missing from
the Editor frontend:

Material:
- twoSidedLighting (boolean) — backface normal calculation

Components:
- light.penumbraSize (number) — PCSS soft shadow edge size
- rigidbody.rollingFriction (number) — torsional friction

Scene Settings:
- render.skyDepthWrite (boolean) — sky depth buffer writes

Includes attribute references, asset/entity migrations, visibility
gating for engine feature availability, and editor-side application
of skyDepthWrite to scene.sky.depthWrite.

Refs #1750

Co-authored-by: Cursor <cursoragent@cursor.com>
@kpal81xd kpal81xd merged commit abbc1bc into main Feb 13, 2026
3 checks passed
@kpal81xd kpal81xd deleted the expose branch February 13, 2026 15:08
@Maksims
Copy link
Collaborator

Maksims commented Feb 13, 2026

What about light.penumbraFalloff?
And in order to configure penumbra, it only is relevant and can be configured if shadow type is PCSS:

label: 'Shadow Type',

Also, the relevant shadow settings only needs to be visible when relevant type is selected. For example falloff and penumbraSize does not need to be there if light type is not PCSS.

@kpal81xd
Copy link
Contributor Author

What about light.penumbraFalloff? And in order to configure penumbra, it only is relevant and can be configured if shadow type is PCSS:

label: 'Shadow Type',

Also, the relevant shadow settings only needs to be visible when relevant type is selected. For example falloff and penumbraSize does not need to be there if light type is not PCSS.

I will add falloff in a follow up PR and recreate the release

kpal81xd added a commit that referenced this pull request Feb 13, 2026
* feat: expose new engine properties in editor UI

Expose the following engine properties that were previously missing from
the Editor frontend:

Material:
- twoSidedLighting (boolean) — backface normal calculation
- diffuseDetailMap / normalDetailMap — detail texture maps with UV,
  channel, offset, tiling, rotation sub-properties
- diffuseDetailMode (string enum) — detail map blend mode
- normalDetailMapBumpiness (slider) — detail normal intensity

Components:
- light.penumbraSize (number) — PCSS soft shadow edge size
- rigidbody.rollingFriction (number) — torsional friction
- gsplat.unified (boolean) — unified splat rendering path

Scene Settings:
- render.skyDepthWrite (boolean) — sky depth buffer writes

Includes attribute references, asset/entity migrations, visibility
gating for engine feature availability, and editor-side application
of skyDepthWrite to scene.sky.depthWrite.

Refs #1750

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: expose new engine properties in editor UI

Expose the following engine properties that were previously missing from
the Editor frontend:

Material:
- twoSidedLighting (boolean) — backface normal calculation

Components:
- light.penumbraSize (number) — PCSS soft shadow edge size
- rigidbody.rollingFriction (number) — torsional friction

Scene Settings:
- render.skyDepthWrite (boolean) — sky depth buffer writes

Includes attribute references, asset/entity migrations, visibility
gating for engine feature availability, and editor-side application
of skyDepthWrite to scene.sky.depthWrite.

Refs #1750

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants