Anyagok
Az anyagok megosztott erőforrások, amelyek meghatározzák a háromszög alakú hálók megjelenítését. A pontfelhők viszont egyáltalán nem teszik közzé az anyagokat.
A rendszer az anyagok megadására szolgál
- mely textúrákat kell alkalmazni,
- hogy transzparenssé tegye-e az objektumokat,
- hogyan kommunikál a világítás a felülettel.
Az anyagok automatikusan jönnek létre a modellátalakítás során, és futásidőben érhetők el. Létrehozhat egyéni anyagokat is a kódból, és lecserélheti a meglévőket. Ez a forgatókönyv különösen akkor hasznos, ha ugyanazt az anyagot több hálón szeretné megosztani. Mivel az anyag módosításai minden olyan hálón láthatók, amely hivatkozik rá, ez a módszer könnyen alkalmazható a módosításokra.
Feljegyzés
Bizonyos használati esetek, például a kijelölt objektumok kiemelése az anyagok módosításával végezhetők el, de sokkal könnyebben megvalósíthatók a HierarchicalStateOverrideComponent használatával.
Anyagtípusok
Az Azure Remote Rendering két különböző anyagtípussal rendelkezik:
PBR-anyagokat használnak olyan felületekhez, amelyeket a lehető legkorrekt módon kell megjeleníteni. Ezeknek az anyagoknak a valósághű megvilágítása fizikai alapú renderelés (PBR) használatával történik. Ahhoz, hogy a lehető legtöbbet kihozhassa ebből az anyagtípusból, fontos, hogy kiváló minőségű bemeneti adatokat biztosítson, például az érdességet és a normál térképeket.
Színanyagokat használnak olyan esetekben, ahol nincs szükség extra világításra. Ezek az anyagok mindig teljes világos, és könnyebb beállítani. A színanyagokat olyan adatokhoz használják, amelyeknek egyáltalán nem kell világítással rendelkezniük, vagy már tartalmaznak statikus világítást, például fotogrammetriával beszerzett modelleket.
Mesh és MeshComponent anyaghozzárendelés
A háromszög alakú hálók egy vagy több almémet rendelkeznek. Minden almesh egy anyagra hivatkozik. Módosíthatja az anyagot úgy, hogy közvetlenül a hálón használja, vagy felülbírálhatja, hogy melyik anyagot használja a MeshComponent alegységéhez.
Amikor közvetlenül a hálóerőforráson módosít egy anyagot, ez a változás a háló összes példányát érinti. A MeshComponenten módosítása azonban csak az adott hálópéldányt érinti. A megfelelőbb módszer a kívánt viselkedéstől függ, de a MeshComponent módosítása a gyakoribb módszer.
Anyag-duplikációk megszüntetése
Az átalakítás során több azonos tulajdonságokkal és anyagmintával rendelkező anyag automatikusan egyetlen anyagra lesz duplikálva. Ezt a funkciót letilthatja a konvertálási beállításokban, de javasoljuk, hogy a legjobb teljesítmény érdekében hagyja be.
Anyagosztályok
Az API által biztosított összes anyag az alaposztályból Material
származik. Típusuk lekérdezhető közvetlenül Material.MaterialSubType
vagy közvetlenül:
void SetMaterialColorToGreen(Material material)
{
if (material.MaterialSubType == MaterialType.Color)
{
ColorMaterial colorMaterial = material as ColorMaterial;
colorMaterial.AlbedoColor = new Color4(0, 1, 0, 1);
return;
}
PbrMaterial pbrMat = material as PbrMaterial;
if (pbrMat != null)
{
pbrMat.AlbedoColor = new Color4(0, 1, 0, 1);
return;
}
}
void SetMaterialColorToGreen(ApiHandle<Material> material)
{
if (material->GetMaterialSubType() == MaterialType::Color)
{
ApiHandle<ColorMaterial> colorMaterial = material.as<ColorMaterial>();
colorMaterial->SetAlbedoColor({ 0, 1, 0, 1 });
return;
}
if (material->GetMaterialSubType() == MaterialType::Pbr)
{
ApiHandle<PbrMaterial> pbrMat = material.as<PbrMaterial>();
pbrMat->SetAlbedoColor({ 0, 1, 0, 1 });
return;
}
}
API-dokumentáció
- C# anyagosztály
- C# ColorMaterial osztály
- C# PbrMaterial osztály
- C# RenderingConnection.CreateMaterial()
- C++ anyagosztály
- C++ ColorMaterial osztály
- C++ PbrMaterial osztály
- C++ RenderingConnection::CreateMaterial()