Materialien
Einführung
In diesem Abschnitt wird erklärt, wie Sie Materialien in Studio verwenden können.
Materialtypen
Material oder Standardmaterial
Ein Standard-[PBR]-Material (https://learn.microsoft.com/en-us/azure/remote-rendering/overview/features/pbr-materials).
Eigenschaften anzeigen hier.
Unbeleuchtetes Material
Material unbeeinflusst von Licht und Schatten. Die Farbe bleibt konsistent, keine Unterstützung für Physical Based Rendering (PBR).
Eigenschaften anzeigen hier.
Materialeigenschaften
Materialien können entweder durch Code oder direkt in der Mesh-Komponente im Editor konfiguriert werden.
Materialien durch Code konfigurieren
ecs.Material.set(world, component.eid, {
r: 255,
g: 128,
b: 64,
roughness: 0.5,
metalness: 0.8,
opacity: 1.0,
side: "front"
})
ecs.UnlitMaterial.set(world, component.eid, {
r: 255,
g: 0,
b: 128,
opacity: 1.0,
side: "double"
})
Eine Textur laden
Das Laden einer Textur erfordert ein Asset oder eine unabhängige Url, die ein Bild bereitstellt. Im API-Abschnitt zu Material und Unlit Material finden Sie weitere Informationen zu den verschiedenen unterstützten Textur-Maps.
import * as ecs from '@8thwall/ecs'
ecs.registerComponent({
name: 'apply-texture-to-material',
schema: {
// @asset
myTexture: ecs.string,
},
add: (world, component) => {
const { myTexture } = component.schemaAttribute.get(component.eid)
ecs.assets.load({ url: myTexture })
.then((result) => {
ecs.Material.set(world, component.eid, {
r: 255,
g: 128,
b: 64,
textureSrc: `${result.remoteUrl}`,
roughness: 0.5,
metalness: 0.8,
opacity: 1.0,
side: "back"
})
})
.catch((error) => {
console.error('Failed to load texture:', error)
})
}
})
Besondere Materialien
Schatten-Material
Material, das nur wiedergegeben wird, wenn ein Schatten darauf geworfen wird.
ecs.ShadowMaterial.set(world, component.eid, {r: 0, g: 250, b: 0, opacity: 1, side: 'front', depthTest: true, depthWrite: true})
Versteckmaterial
Material, das alle Objekte hinter sich verbirgt.
ecs.HiderMaterial.set(world, component.eid)