Aetheria/docs/original-game-rendering-spec.md
2026-07-17 11:54:00 +01:00

6.7 KiB

Original Game Rendering And View Specification

Baselines: RTS d12d7c5c^; ARPG origin/master at ab2c2944.

Projection Contexts

Aetheria does not have one universal camera. It has distinct products:

  • pilot gameplay world through main plus follow/dock virtual cameras;
  • auxiliary fog and field cameras writing named textures;
  • tactical minimap cameras and map-scale icons;
  • full zone-map projection;
  • sector/galaxy topology projection;
  • world effects, transparent passes, trails, and overlays.

ZoneRenderer currently coordinates many of these, but that Unity class is a reference composition, not the target owner.

Entity Presentation Graph

EntityInstance is a composite presentation root containing:

  • hull renderers and collision presentation;
  • tactical map icon;
  • influence and ping subviews;
  • shield subview;
  • equipment, radiator, thruster, weapon, and articulation hardpoints;
  • fade-capable and persistent material partitions;
  • visibility/fade lifecycle.

ShipInstance adds thruster particles, Aether-drive effects, tractor beam, and ship-specific composition. Weapon presentation adds muzzle, charge, projectile, beam, impact, explosion, particle, and trail subviews.

One entity/one opaque prefab is insufficient as a portable contract. Eve needs a typed entity-presentation graph with named subviews, attachment sockets, activation predicates, render channels, and effect bindings.

Semantic Render Channels

Required Aetheria channels include:

world.geometry
world.celestial
world.transparent
world.shields
world.projectiles
world.trails
world.effects
field.fog-density
field.fog-displacement
field.gravity
field.influence
map.zone.objects
map.zone.gravity
map.minimap.objects
map.minimap.fields
map.sector.topology
overlay.targeting

Channel identity is semantic. Unity layer numbers are runtime-variant metadata. The pilot view excludes minimap channels; map cameras include their map channels without requiring pilot geometry. A channel may render to display or a named texture consumed by another material/channel.

Each channel requires space, camera role, visibility set, ordering, output target, update policy, clear policy, composition mode, and consumer bindings.

Fields

Original products include fog density/tint, displacement and patches, sector boundary fog, gravity wells/waves/terrain/depth, influence, slime/gravity textures, and map/minimap overlays. Eve Fields is the portable numeric base, but parity requires named outputs, per-product resolution, blend operation, viewport, cadence, material consumer, and camera visibility.

Asset And Material Contract

Provider assets own authored transforms, bounds, meshes, materials, sprites, textures, sounds, and effect content. Semantic radius never rescales authored art. Runtime variants map portable roles to native resources.

Required asset kinds include entity presentation, subview, mesh, material profile, effect, projectile presentation, trail profile, field material, map symbol, and audio. Entity presentations declare root asset, subviews, attachments, material slots, visibility tags, map representations, and effect bindings.

Material profiles describe intent such as opaque PBR, transparent, additive, field, shield, and celestial. They expose typed parameters and texture slots; they do not publish Unity shader names as portable authority.

The current native environment seed packages the pre-generated Radiance image at Assets/Textures/studio2.hdr strictly as the reflection texture for stellar-tinted ambient lighting. Gravity-fog raymarching fills the visible frame; the studio image is not a skybox or an ambient-color authority. The HDR source is 4096 by 2048 pixels with SHA-256 A2886F1024F67DCB082DA3C97741B4B0824A2E784A697807DBE5DCEB597F85E0; it entered the reference project in commit b53e4aec on 2021-02-26. The repository contains no external license attribution for that file, so its redistribution clearance remains unverified. Treat it as migration material, not a provenance claim.

Texture generation is an offline authoring concern. Aetheria consumes packaged, pre-generated textures today; the intended authoring path moves baking into Blender. Neither the daemon nor generic Eve runtimes depend on Substance archives or a Substance importer.

Effects

Effects are semantic burst, loop, beam, trail, impact, shield-hit, destruction, and screen-feedback lifecycles. Contracts declare source event, spawn space, attachment socket, channel, lifetime, pooling class, parameters, and start/ update/stop bindings. Effect realization cannot mutate gameplay state.

The current tractor lowering uses provider-owned, pre-generated particle textures and materials. beam.presentation carries source identity, provider asset role, daemon power, activation threshold, authored radius/distance, render channel, and an advertised activation action. EveUnity attaches and modulates that prefab; it does not raycast, apply force, infer contact, or move cargo. The provider build removes the fossil's embedded tractor object from ship presentation prefabs, so the standalone beam.presentation effect is the only live writer of tractor visuals. The daemon's post-motion XZ proximity pass remains the only collection gate.

Projectile simulation and projectile presentation are separate. The daemon and Ymir own identity/pose/contact; presentation owns visual asset, trail, impact, and visibility tags.

Maps

Minimap, zone map, and sector map are separate projections sharing stable world identities. They are not merely alternate cameras over the pilot document.

  • minimap: local contacts, icons, influence, gravity, independent zoom;
  • zone map: viewport objects, fields, selection, and navigation;
  • sector map: topology, links, discovery, factions, entrance/exit/boss/current.

Runtime Ownership

Target ownership: EveUnity owns generic native lowering primitives once they exist. Current implementation covers basic playable-world entities, provider assets, input, camera following, command transport, receipts, and refresh. Semantic render channels, entity presentation graphs, map products, material profiles, effect lifecycles, pooling, and parity diagnostics remain incomplete or unimplemented.

Aetheria publishes semantic state and provider asset variants. Eve owns portable contracts and plugin ABIs. Native layer allocation, masks, render textures, prefab assembly, materials, GPU buffers, particles, trails, pooling, culling, and diagnostics are derived runtime state, never portable authority.

Visual Parity Proofs

Capture and compare pilot world, shield hit, each projectile/beam/trail family, fog/fields, minimap, zone map, and sector map. Diagnostics must identify source projection, channel, camera, target texture, visibility set, active asset variant, and provider event/state version.