2D-Plan-Renderer auf WebGL2 (GPU) + akkumulierter Funktionsstand
Neuer GPU-Renderer fuer den Grundriss (src/plan/glPlan/): Earcut-Tessellierung (konkav-faehig), gehrte Linienzuege (Miter), echte Papier-mm-Strichbreiten im Massstab (repliziert den SVG-printStrokeVb-Pfad), Hybrid mit scharfem SVG-Text- Overlay. GPU ist der Standardpfad; der SVG-Renderer bleibt automatischer Fallback, falls WebGL2/Shader nicht verfuegbar sind. Imperativer Pan (rAF + CSS-transform) fuer fluessige Interaktion ohne React-Re-Render je Frame. Enthaelt zudem den bisher nicht committeten Arbeitsstand des Browser-BIM (Oeffnungen, Treppen, Raeume, Decken, DXF-Export, Materialbibliothek, Kontext- Import, Tauri-Compute-Boundary-PoC).
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
// Auto-generated built-in material library (ambientCG, CC0 1.0).
|
||||
// Static asset paths under /public; loadable directly via three.js TextureLoader.
|
||||
// Source data mirrors public/assets/materials/manifest.json.
|
||||
|
||||
export type MaterialMapKind =
|
||||
| 'color'
|
||||
| 'normal'
|
||||
| 'roughness'
|
||||
| 'metalness'
|
||||
| 'displacement'
|
||||
| 'ao';
|
||||
|
||||
export interface MaterialAsset {
|
||||
/** ambientCG asset id, e.g. 'Concrete048'. */
|
||||
id: string;
|
||||
/** Localized display name (German). */
|
||||
name: string;
|
||||
/** ambientCG category key, e.g. 'Concrete'. */
|
||||
category: string;
|
||||
/** Absolute public paths to the available texture maps. */
|
||||
maps: Partial<Record<MaterialMapKind, string>>;
|
||||
}
|
||||
|
||||
export const MATERIAL_LIBRARY_SOURCE = "ambientCG (ambientcg.com)";
|
||||
export const MATERIAL_LIBRARY_LICENSE = "CC0 1.0 Universal (Public Domain)";
|
||||
export const MATERIAL_LIBRARY_RESOLUTION = "1K";
|
||||
|
||||
export const MATERIAL_LIBRARY: MaterialAsset[] = [
|
||||
{
|
||||
id: "Concrete048",
|
||||
name: "Beton",
|
||||
category: "Concrete",
|
||||
maps: {
|
||||
color: "/assets/materials/Concrete048/color.jpg",
|
||||
normal: "/assets/materials/Concrete048/normal.jpg",
|
||||
roughness: "/assets/materials/Concrete048/roughness.jpg",
|
||||
displacement: "/assets/materials/Concrete048/displacement.jpg",
|
||||
ao: "/assets/materials/Concrete048/ao.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Plaster001",
|
||||
name: "Putz/Stuck",
|
||||
category: "Plaster",
|
||||
maps: {
|
||||
color: "/assets/materials/Plaster001/color.jpg",
|
||||
normal: "/assets/materials/Plaster001/normal.jpg",
|
||||
roughness: "/assets/materials/Plaster001/roughness.jpg",
|
||||
displacement: "/assets/materials/Plaster001/displacement.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Wood095",
|
||||
name: "Holz-Diele",
|
||||
category: "Wood",
|
||||
maps: {
|
||||
color: "/assets/materials/Wood095/color.jpg",
|
||||
normal: "/assets/materials/Wood095/normal.jpg",
|
||||
roughness: "/assets/materials/Wood095/roughness.jpg",
|
||||
displacement: "/assets/materials/Wood095/displacement.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "WoodFloor051",
|
||||
name: "Holz-Parkett",
|
||||
category: "WoodFloor",
|
||||
maps: {
|
||||
color: "/assets/materials/WoodFloor051/color.jpg",
|
||||
normal: "/assets/materials/WoodFloor051/normal.jpg",
|
||||
roughness: "/assets/materials/WoodFloor051/roughness.jpg",
|
||||
displacement: "/assets/materials/WoodFloor051/displacement.jpg",
|
||||
ao: "/assets/materials/WoodFloor051/ao.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Bricks104",
|
||||
name: "Backstein",
|
||||
category: "Bricks",
|
||||
maps: {
|
||||
color: "/assets/materials/Bricks104/color.jpg",
|
||||
normal: "/assets/materials/Bricks104/normal.jpg",
|
||||
roughness: "/assets/materials/Bricks104/roughness.jpg",
|
||||
displacement: "/assets/materials/Bricks104/displacement.jpg",
|
||||
ao: "/assets/materials/Bricks104/ao.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Tiles141",
|
||||
name: "Bodenfliesen",
|
||||
category: "Tiles",
|
||||
maps: {
|
||||
color: "/assets/materials/Tiles141/color.jpg",
|
||||
normal: "/assets/materials/Tiles141/normal.jpg",
|
||||
roughness: "/assets/materials/Tiles141/roughness.jpg",
|
||||
displacement: "/assets/materials/Tiles141/displacement.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Marble012",
|
||||
name: "Naturstein/Marmor",
|
||||
category: "Marble",
|
||||
maps: {
|
||||
color: "/assets/materials/Marble012/color.jpg",
|
||||
normal: "/assets/materials/Marble012/normal.jpg",
|
||||
roughness: "/assets/materials/Marble012/roughness.jpg",
|
||||
displacement: "/assets/materials/Marble012/displacement.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "PavingStones150",
|
||||
name: "Pflasterstein",
|
||||
category: "PavingStones",
|
||||
maps: {
|
||||
color: "/assets/materials/PavingStones150/color.jpg",
|
||||
normal: "/assets/materials/PavingStones150/normal.jpg",
|
||||
roughness: "/assets/materials/PavingStones150/roughness.jpg",
|
||||
displacement: "/assets/materials/PavingStones150/displacement.jpg",
|
||||
ao: "/assets/materials/PavingStones150/ao.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Metal063",
|
||||
name: "Metall",
|
||||
category: "Metal",
|
||||
maps: {
|
||||
color: "/assets/materials/Metal063/color.jpg",
|
||||
normal: "/assets/materials/Metal063/normal.jpg",
|
||||
roughness: "/assets/materials/Metal063/roughness.jpg",
|
||||
metalness: "/assets/materials/Metal063/metalness.jpg",
|
||||
displacement: "/assets/materials/Metal063/displacement.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Gravel043",
|
||||
name: "Kies/Schotter",
|
||||
category: "Gravel",
|
||||
maps: {
|
||||
color: "/assets/materials/Gravel043/color.jpg",
|
||||
normal: "/assets/materials/Gravel043/normal.jpg",
|
||||
roughness: "/assets/materials/Gravel043/roughness.jpg",
|
||||
displacement: "/assets/materials/Gravel043/displacement.jpg",
|
||||
ao: "/assets/materials/Gravel043/ao.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Grass005",
|
||||
name: "Gras",
|
||||
category: "Grass",
|
||||
maps: {
|
||||
color: "/assets/materials/Grass005/color.jpg",
|
||||
normal: "/assets/materials/Grass005/normal.jpg",
|
||||
roughness: "/assets/materials/Grass005/roughness.jpg",
|
||||
displacement: "/assets/materials/Grass005/displacement.jpg",
|
||||
ao: "/assets/materials/Grass005/ao.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "Ground103",
|
||||
name: "Boden",
|
||||
category: "Ground",
|
||||
maps: {
|
||||
color: "/assets/materials/Ground103/color.jpg",
|
||||
normal: "/assets/materials/Ground103/normal.jpg",
|
||||
roughness: "/assets/materials/Ground103/roughness.jpg",
|
||||
displacement: "/assets/materials/Ground103/displacement.jpg",
|
||||
ao: "/assets/materials/Ground103/ao.jpg",
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
export default MATERIAL_LIBRARY;
|
||||
Reference in New Issue
Block a user