3d:export-runtime

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
3d:export-runtime [2026/03/04 09:32] – [Correct Modifier / Boolean Order] mh3d:export-runtime [2026/03/13 14:57] (current) – [2. Non-Emissive Bottles / Jars] mh
Line 1: Line 1:
 ====== Exporting for Real-Time Engines ====== ====== Exporting for Real-Time Engines ======
 +
 +===== Scene Categories =====
 +
 +Objects in the scene fall into three groups:
 +
 +Static scenery
 +  * books
 +  * static bottles
 +  * clutter
 +  * merged per section
 +
 +Dynamic visual actors
 +  * emissive potion liquids
 +  * magical orbs
 +
 +Hero props
 +  * telescope
 +  * cauldron
 +  * large standalone objects
 +
 +Each category follows a different export strategy.
 +
 +-----
 +
 +===== Result =====
 +
 +Clean GLB structure with:
 +
 +  * low object count for scenery
 +  * independent meshes for runtime effects
 +  * shared materials
 +  * predictable pivot points
 +
 +This structure is optimal for real-time engines.
 +
 +----
 +
  
 ===== Baking Textures ===== ===== Baking Textures =====
Line 139: Line 176:
   * Export   * Export
  
-====== Large sets of little objects ======+===== Large sets of little objects ===== 
 + 
 +==== General Principles ==== 
 + 
 +  * Empties and helper hierarchies are modeling tools only → remove them before export. 
 + 
 +  * Objects that require runtime control (animation, emission, transparency, etc.) should remain separate meshes. 
 + 
 +  * Static decorative elements can be merged per spatial section to reduce node count. 
 +    * Think in terms of: Bookshelf_Section_Accessories_01/Workbench_Accessories_01/BackWall_Accessories_01 
 +    * Frustum culling works better by spatial grouping. If a bookshelf is off camera, the whole cluster disappears. 
 +    * If everything is one giant “AllDecor” mesh, nothing gets culled. 
 + 
 +  * Avoid procedural materials in exported assets → use simple BSDF or baked textures. 
 + 
 + 
 + 
 +==== Bottles / Jars Workflow for Real-Time Export ==== 
 + 
 + 
 +Two main bottle structures exist in the scene: 
 + 
 +  - Emissive potion bottles 
 +  - Non-emissive bottles/jars 
 + 
 +Each type should be prepared differently for export. 
 + 
 + 
 +==== 1. Emissive Potion Bottles ==== 
 + 
 +Structure per bottle: 
 + 
 +  * Bottle Glass (transparent material) 
 +  * Liquid (emissive material) 
 +  * Cork (opaque material) 
 + 
 +Recommended mesh structure: 
 + 
 +  * Merge Cork + Bottle Glass → single mesh 
 +  * Keep Liquid as a separate mesh 
 + 
 +Final object group: 
 + 
 +  Bottle_CorkGlass 
 +  Bottle_Liquid_Emissive 
 + 
 +Reasons: 
 + 
 +  * Liquid emissive strength will be animated later in Kinetic. 
 +  * Glass transparency should remain separate from emissive geometry for proper rendering order. 
 +  * Cork does not require runtime control and can be merged with the bottle. 
 + 
 +Material rules: 
 + 
 +  * Glass → simple transparent BSDF 
 +  * Liquid → emissive material (shared datablocks per color if possible) 
 +  * Cork → simple opaque BSDF 
 + 
 +Important: 
 + 
 +  * Do NOT merge liquids from multiple bottles together. 
 +  * Each emissive liquid remains an independent mesh for animation. 
 + 
 +==== 2. Non-Emissive Bottles / Jars ==== 
 + 
 +Structure per bottle: 
 + 
 +  * Bottle glass 
 +  * Liquid (simple colored BSDF) 
 +  * Cork (optional) 
 + 
 +Recommended mesh structure: 
 + 
 +  * Merge all parts together into one object. 
 + 
 +Final object: 
 + 
 +  Bottle_Static 
 + 
 +Reasons: 
 + 
 +  * No animation required 
 +  * No emissive control required 
 +  * Transparency sorting remains stable because liquid and glass share the same object. 
 + 
 +These static bottles can then be merged with other decorative elements in the same spatial section, or kept separate and joined together as a "transparent" set. 
 + 
 +Example: 
 + 
 +  Bookshelf_Accessories_01 
 +  Workbench_Accessories_01 
 + 
 +----- 
 + 
 +===== Final Export Checklist ===== 
 + 
 +Before exporting to GLB: 
 + 
 +  * Remove empties 
 +  * Apply Rotation + Scale (not Location for placed scene objects) 
 +  * Ensure materials are simple BSDF (no procedural nodes) 
 +  * Verify shared materials use the same datablocks 
 +  * Confirm normals are correct 
 +  * Merge static decorative objects by scene section 
 +  * Keep emissive bottles and other runtime actors separate 
 + 
 +-----
  
-  - **Remove All Empties:** they’re modeling scaffolding. 
-  - **Group by Logical Zones** not By Asset Type Think in terms of: Bookshelf_Section_Accessories_01/Workbench_Accessories_01/BackWall_Accessories_01 
-    - Frustum culling works better by spatial grouping. If a bookshelf is off camera, the whole cluster disappears. 
-    - If everything is one giant “AllDecor” mesh, nothing gets culled. 
  • 3d/export-runtime.1772613141.txt.gz
  • Last modified: 2026/03/04 09:32
  • by mh