Använd SideFX Houdini för att omvandla punktmoln till optimerade 3D-objekt för Dynamics 365 Guides och för komponenter med mixad verklighet i appar som skapats med Power Apps
Den här guiden innehåller steg-för-steg-instruktioner för följande uppgifter:
Konvertera ett punktmoln till ett 3D-objekt.
Optimera ett 3D-objekt genom att minska antalet polygoner så att det matchar prestandamålen för Dynamics 365-appar med mixad verklighet.
Exportera ett optimerat 3D-objekt som en GLB-fil som kan användas i Dynamics 365 Guides och komponenter med mixad verklighet i appar som skapats med Power Apps
Skapa en mall för bearbetningspipeline så att du snabbt kan optimera punktmoln i framtiden.
Självstudien är endast till för informationssyfte, för att visa hur SideFX Houdini fungerar tillsammans med Microsoft Dynamics 365 Guides och Power Apps. När du använder program från tredje part gäller villkoren mellan dig och den tredje parten. Microsoft Corporation är inte ett närstående företag eller partner till SideFX och vare sig rekommenderar eller stöder SideFX eller någon av företagets produkter. Det finns flera andra appar för att skapa innehåll som du kan använda för att förbereda dina 3D-objekt.
Vad är Houdini?
Houdini är ett verktyg för att skapa procedurmässigt 3D-innehåll. Det använder ett icke-destruktivt nodbaserat verktygssystem för att designa processpipelines och 3D-innehåll.
Konfigurera din miljö
Du måste utföra följande uppgifter för att konfigurera din miljö:
Installera SideFX Labs-tillägget.
Konfigurera AliceVision för fotogrammetri.
Installera SideFX Labs-tillägget
SideFX Labs är en testplats för verktyg som hjälper dig att snabbt komma i gång med Houdini. Den här samlingen med gratisverktyg innehåller verktyg som är användbara för att konvertera punktmoln till optimerade 3D-objekt. För att kunna använda SideFX Labs måste du använda Houdini 18 eller senare.
SideFX tillhandahåller en självstudievideo som hjälper dig att installera de här verktygen.
Obs!
Du måste installera Houdini innan du kan installera SideFX Labs. Läs mer om att installera Houdini.
Öppna Houdini.
Om du vill installera SideFX Labs väljer du plustecknet högst upp i Houdini-fönstret, väljer Shelves och markerar sedan kryssrutan SideFX Labs.
I verktygsfältet som visas i närheten av fönstrets överkant väljer du Update Toolset för att öppna installationsprogrammet.
Välj Update för att installera verktygen.
Om installationen lyckas visas fler verktyg i verktygsfältet. Sedan kan du fortsätta med den här guiden.
Konfigurera AliceVision för fotogrammetri
AliceVision är ett fotogrammetriskt ramverk för visuellt innehåll som har utvecklats av Mikros Image. Det tillhandahåller algoritmer för 3D-rekonstruktion och kameraspårning. Läs mer om AliceVision och plugin-programmet AliceVision.
Information om hur du installerar och konfigurerar plugin-programmet AliceVision för Houdini finns i SideFX-självstudien.
Importera ett punktmoln till Houdini
Houdini kan importera punktmoln till filformatet PLY. Om filen har filformatet PTS kan du konvertera den manuellt till PLY-formatet.
Konvertera en PTS-fil till en PLY-fil
Öppna PTS-filen i valfri filredigerare och lägg till följande huvud.
************************ ply format ascii 1.0 element vertex 534993 property float x property float y property float z property uchar intensity property uchar red property uchar green property uchar blue end_header ************************
Bredvid element vertex i huvudet byter du ut värdet 534993 mot det värde som ursprungligen visades högst upp i din PTS-fil (men som nu visas omedelbart efter huvudet).
Det här värdet är det totala antalet punkter i punktmolnet.
Ta bort det ursprungliga värdet efter huvudet. I tabellen nedan visas en jämförelse sida vid sida av filerna före och efter att du har gjort de föregående ändringarna. Värdet för element vertex är markerat med rött.
Överst i PTS-filen Överst i PLY-filen Spara filen så att den får filnamnstillägget PLY.
Importera PLY-filen
Öppna Houdini. En ny scen skapas automatiskt. I den här proceduren bygger du en kedja med noder för att bearbeta punktmolnet till ett 3D-objekt. Noderna byggs i det nedre högra fönstret i Houdini-fönstret.
Högerklicka i det nedre högra fönstret för att öppna TAB Menu. (Du kan också trycka på Tab-tangenten.)
På TAB Menu väljer du Import > File och väljer i fönstret Geometry för att placera noden.
Dubbelklicka mitt i noden file1 (eller tryck på I) för att öka detaljnivån till nodens filurvalsdel, välj knappen File Chooser och välj den fil som du vill importera.
I filläsaren som visas bläddrar du till platsen för den PLY-punktmolnsfil som du vill importera, väljer filen och väljer Accept.
Punktmolnet visas i huvuddelen av fönstret. Om du inte kan se det, testa att använda mushjulet för att zooma ut tills du kan se hela punktmolnet.
Förbereda punktmolnet
Ändra riktning på punktmolnet
Ibland kan det hända att ett punktmoln har fel orientering när du importerar det. Du kan korrigera orienteringen genom att lägga till en omvandlingsnod i nodträdet.
Högerklicka i fönstret Geometry för att öppna TAB Menu och välj Manipulate > Transform för att lägga till en omvandlingsnod.
Dra från punkten längst ned i noden file1 till punkten högst upp i noden transform1. På det här sättet kopplar du utdata från noden file1 till indata från noden transform1. Välj sedan på höger sida av noden transform1. Den högra sidan av noden transform1 blir blå och noden blir aktiv i huvuddelen av fönstret, så att du kan se din modell efter att den har riktats om.
Tips
Om du vill visa modellen under en viss fas i processen i Houdini klickar du på höger sida av noden. Den här funktionen är praktisk om du behöver titta på 3D-objektet i ett föregående tillstånd och redigera ändringarna som inträffade under det tillståndet.
Du korrigerar modellens rotation genom att lägga till värden i raden Rotate i alternativfönstret ovanför nodfönstret. Du kan ofta ställa in värdet x till 270 för att rotera modellen till rätt position. Försök med olika värden om det värdet inte fungerar.
Om du vill centrera punktmolnet över ursprungspunkten lägger du till en nod för axeljustering efter omvandlingsnoden. Du placerar noden genom att hovra musen över fönstret Geometry, trycka på tangenten Tab för att öppna TAB Menu och sedan välja Labs>Geo>Labs Axis Align.
Dra för att koppla utdatapunkten längst ned i noden transform1 till indatapunkten högst upp i noden axisalign1. Låt standardvärdena vara kvar så att de placerar punktmolnet ovanpå ursprungspunkten (den idealiska placeringen).
Rensa punktmolnet för att avlägsna enstaka punkter
Om punktmolnet har enstaka punkter som du vill avlägsna kan du välja och ta bort enskilda punkter eller grupper med punkter.
Ändra metoden Geometry select till Points och verktyget Select till Lasso Picking.
Obs!
Du kan använda en annan metod om du föredrar det.
Välj de punkter du vill ta bort.
Tryck på Delete-tangenten. Den nya noden blast1 visas. Indatapunkten högst upp i den här noden är kopplad till utdatapunkten längst ned i den senaste noden som du arbetade med.
Fortsätt att ta bort punkter tills du är nöjd med resultatet. Varje borttagning lägger till en ny blast-nod som du kan visa eller ta bort när du vill.
Konvertera punktmolnet till ett nät
För både glTF-program och program för återgivning i realtid måste objekt representeras som en triangulerad polygonyta. Du kan använda kommandot Particle Fluid Surface för att koppla ihop punkterna till en logisk yta som polygongeometri.
Välj i fönstret Geometry för att öppna TAB Menu och välj sedan Fluid>Particle Fluid Surface. Välj noden och lägg till den i fönstret Geometry.
Dra för att koppla utdatapunkten längst ned i noden transform1 till indatapunkten högst upp till vänster på noden particlefluidsurface1. Välj sedan på höger sida av noden pariclefluidsurface1 för att aktivera noden i huvuddelen av fönstret.
Punktmolnet återges som ett nät i huvuddelen av fönstret. Fliken Surfacing har valts i det övre högra fönstret ovanför fönstret Geometry.
Om färgdata är associerade med punkterna i punktmolnet kan du använda färgattributen genom att lägga till bokstäverna Cd i slutet av värdet i fältet Transfer Attributes. Då visas färgen i nätet.
Om det finns hål i nätet, så som visas på följande bild, justerar du skjutreglagen Particle Separation och Voxel Scale i det övre högre fönstret för att åtgärda problemet.
Förbered nätet för decimering (nästa steg i den övergripande processen) genom att under Output ändra värdet på fältet Convert To från Surface Polygon Soup till Surface Polygons. På så sätt kan du maska om nätet och decimera det.
Högerklicka i fönstret Geometry för att öppna TAB Menu och välj sedan Polygon>Remesh. En remesh-nod läggs till för att omvandla nätet till trianglar. På det här sättet kan du decimera 3D-objektet till ett antal polygoner som uppfyller dina prestandakrav.
Dra för att koppla utdatapunkten längst ned i noden particlefluidsurface1 till indatapunkten högst upp till vänster på noden remesh. Välj i mitten av noden remesh för att aktivera den i fönstret ovanför fönstret Geometry. Välj sedan på höger sida av noden remesh för att aktivera modellen i huvuddelen av fönstret. Nu kan du redigera egenskaperna för ommaskningen. Modellen i huvuddelen av fönstret återspeglar redigeringarna.
Experimentera med alternativen under Element Sizing för att få de resultat du vill ha. I fältet Edge Lengths kan du behålla standardvärdet (Uniform) eller välja Adaptive och justera skjutreglaget Relative Density (och andra alternativ) för att få det nät du vill ha.
Decimera 3D-objektet för att förbättra prestandan
För att uppnå programspecifika mål kan du behöva decimera 3D-objektet. Decimering är den process där en modells ytpolygoner räknas om för att skapa en liknande form med hjälp av färre polygoner. Processen minskar den visuella överensstämmelsen men förbättrar prestandan. I följande tabell visas en jämförelse sida vid sida av en högkvalitativ modell som används för låg scenkomplexitet i HoloLens och en lågkvalitativ modell som används hög scenkomplexitet.
3D-objekt med många polygoner | 3D-objekt med få polygoner |
---|---|
500 000 trianglar | 8 000 trianglar |
Decimera en modell
Tryck på Tab-tangenten i fönstret Geometry för att öppna TAB Menu och välj Polygon>PolyReduce för att placera en PolyReduce-nod i fönstretGeometry.
Dra för att koppla utdatapunkten längst ned i noden remesh till indatapunkten högst upp till vänster på noden polyreduce1. Välj i mitten av noden polyreduce1 och välj på höger sida av noden för att aktivera den i huvuddelen av fönstret.
Välj Output Polygon Count under Reduction Amount i fältet Target och dra skjutreglaget Number To Keep för att justera antalet polygoner så att du uppfyller prestandakraven och samtidigt behåller en godtagbar visuell överensstämmelse.
Punktmolnet har nu omvandlats till ett optimerat 3D-nät. I nästa steg bearbetar du en högupplöst struktur på 3D-objektet för att återfå en del av den visuella överensstämmelsen som fanns före decimeringen.
Bearbeta en högupplöst struktur på ett nät med få polygoner
En nackdel med att minska antalet polygoner i ett nät är att många detaljer försvinner. Om du vill återställa en del av dessa detaljer kan du ta bilder på dem och använda som en struktur som läggs ovanpå modellen med få polygoner. Under processen, som kallas strukturbearbetning tar du en bild av alla ytor från modellen med många polygoner och sammanför dem till ett "täcke" som du draperar ovanpå modellen med få polygoner. På så sätt får du den prestanda som modeller med få polygoner har, och bibehåller en del av detaljerna i en modell med många polygoner.
Strukturkoordinater (även kallade UV:er) är par med siffror (U och V) som lagras i en modells geometri. Siffrorna representerar det sätt som en 2D-bild kan mappas på en 3D-yta och gör att ytegenskaper kan definieras som en bild. Bilderna kan vara enkla dekaler eller komplexa materialkomponenter, till exempel grovhet och metalliskhet. Du kan generera UV-positioner manuellt för ett nät, och processen kan också utföras halvautomatiskt eller automatiskt. Ytoperatorn AutoUV är ett verktyg i Houdini som kan generera UV:er. Det använder några automatiska metoder för att skapa UV:er.
Bearbeta strukturen
Högerklicka i fönstret Geometry för att öppna TAB Menu och välj Labs>UV>Labs Auto UV för att lägga till en AutoUV-nod i scenen.
Ändra värdet i fältet Method under Method till UV Unwrap.
Dra för att koppla utdatapunkten längst ned i noden polyreduce1 till indatapunkten högst upp i noden autouv1.
Om du vill visa "före"- och "efter"-objekten sida vid sida väljer du knappen Layout för visningsområde och väljer sedan Två vyer sida vid sida.
I listrutan i fönstrets huvuddel väljer du Set View > UV viewport.
De UV:er som inte är inpackade visas till vänster och 3D-objektet visas till höger.
I fönstret Geometry väljer du Labs>Output>Labs Maps Baker för att lägga till noden maps_baker1.
Dra för att koppla utdatapunkten längst ned i noden autouv1 till indatapunkten högst upp till vänster i noden maps_baker1. (Punkten längst upp till vänster är noden LOW Resolution input.)
Dra för att koppla utdatapunkten längst ned i noden particlefluidsurface1 till indatapunkten högst upp till höger på noden maps_baker 1. (Punkten längst upp till höger är noden HIGH Resolution input.)
Välj noden maps_baker1 och ändra sedan värdet i fältet Preview Channel, under Bake, till diffuse. Under Bake Options ställer du in fältet Diffuse Map till diffuse.
Tips
Om du vill spara projektet i en viss mapp väljer du knappen File Chooser bredvid fältet Output Directory som visas i bilden ovan. När du bearbetar en struktur sparas PNG-strukturfilen i en render-mapp som skapas i det sparade projektets rotmapp. Genom att spara projektet i en egen mapp gör du det enkelt att hitta den bearbetade strukturen.
Välj noden maps_baker1 och välj Bake i fönstret med alternativ.
Högerklicka i fönstret Geometry för att öppna TAB menu och välj Managers>Material Network för att lägga till noden matnet1 i scenen.
Dubbelklicka på noden matnet1 för att öppna fönstret VEX Builder.
Högerklicka i fönstret VEX Builder och välj Shaders > Principled Shader för att lägga till materialet Principled Shader.
Använd skjutreglagen på fliken Surface i fönstret med alternativ för att ändra värdet i fältet Roughness till 0.6 och värdet i fältet Metallic till 0.1. (Du kan ställa in valfria värden i de här fälten, men vi har kommit fram till att de här värdena är en bra utgångspunkt när de används med standardvärdena.)
Markera kryssrutan Use Texture under Base Color på fliken Textures. Välj knappen File Chooser och välj strukturfilen *_color.png som du har sparat i mappen render. Nu kan du använda principled shader.
Obs!
Du kan ändra materialet ytterligare om du vill. För den här självstudien räcker det med den här konfigurationen.
I fönstret VEX Builder väljer du knappen Back (vänsterpil) för att återgå till fönstret Geometry.
Välj Material > Material för att placera noden material i fönstret Geometry.
Dra för att koppla utdatapunkten längst ned i noden autouv1 till indatapunkten högst upp i noden material1.
Välj noden material1 och välj sedan knappen Operator chooser. I dialogrutan Choose Operator väljer du file1>matnet1>principledshader1 för att välja den principled shader som du skapade tidigare.
Välj på höger sida av noden för att aktivera den i huvuddelen av fönstret.
Strukturen återges ovanpå 3D-objektet med få polygoner. Om det ser godtagbart ut går du vidare till nästa steg.
Exportera modellen till en GLB-fil
I det här steget exporterar du modellen till en GLB-fil så att den kan användas med Dynamics 365 Guides och Power Apps.
Högerklicka i fönstret Geometry för att öppna TAB Menu och välj Export>ROP GLTF Output.
Dra för att koppla utdatapunkten längst ned i noden material1 till indatapunkten högst upp i noden rop_gltf1.
I det övre fönstret ändrar du värdet i fältet Export Type till glb.
Välj knappen File Chooser bredvid fältet Output File och ange ett namn och en destination för GLB-filen. Se till att lägga till .glb i slutet av filnamnet. Välj Accept när du är klar.
Välj Render to Disk för att slutföra exporten och skapa GLB-filen.
Skapa en mall för att återanvända inställningarna för andra punktmoln
Om du vill spara tid och arbete kan du skapa en mall. På det sättet kan de inställningar du skapar för ett punktmoln användas för andra punktmoln. Även om du fortfarande måste välja Bake manuellt och troligen måste justera några värden, kan du automatisera det mesta av bearbetningen.
Skapa en mall
Byt ut den geometri som används för tillfället mot en standardgeometri. Det här steget gör mallfilen mindre så att den läses in snabbt.
I fönstret Geometry väljer du i mitten av filnoden för att växla till menyn File i det övre fönstret.
Ändra värdet i fältet Geometry File till default.bgeo och välj Reload Geometry.
Lägg märke till att geometrin ritas om så att den blir en allmän kub.
Ändra filnamnet till något allmänt, till exempel Mall.
Välj File> Save och ange ett namn som du kan komma ihåg, till exempel Prep_Mall.
Stäng Houdini.
Använda mallen
Öppna Houdini, välj File>Open och välj mallen som du skapade.
I fönstret Geometry väljer du i mitten av filnoden för att växla till menyn File i det övre fönstret. Välj knappen File Chooser bredvid fältet Geometry File för att välja PLY-punktmolnfilen.
Välj Reload Geometry för att läsa in punktmolnet i scenen.
Gå till noden maps_baker1 och välj Bake för att bearbeta en ny struktur för 3D-objektet.
Välj på höger sida av noden material1 för att visa den bearbetade modellen.
Följ ett av stegen nedan:
Om du är nöjd med 3D-objektet går du till noden rop_gltfB och väljer Render to Disk för att exportera 3D-objektet.
Om du inte är nöjd med 3D-objektet justerar du inställningarna för noderna particlefluidsurface1, remesh och polyreduce1. När modellen är godtagbar bearbetar du strukturen igen och exporterar 3D-objektet.
Visa ett 3D-objekt i Dynamics 365 Guides eller Power Apps
När du har förberett ett 3D-objekt kan du använda följande länkar och lära dig mer om hur du använder modellen i Dynamics 365 Guides eller Power Apps:
Mer information
Skärmbilderna i den här självstudien är hämtade från programvaran Houdini för att ge tydliga anvisningar om hur du använder programvaran Houdini. Läs mer om SideFX Houdini.
Microsoft Corporation ansvarar inte för och friskriver sig uttryckligen från allt ansvar för skador som uppstår genom användning av Houdini eller av att användaren förlitar sig på dessa anvisningar. Detta dokument har endast tagits fram för att ge allmän information till våra kunder och tar inte hänsyn till några individuella affärsplaner eller specifikationer.
De varumärkesskyddade namn och bilder som används i detta dokument används enbart informationssyfte och som beskrivning och Microsoft Corporation ställer inga kommersiella anspråk på användningen av dessa och vare sig stöder eller rekommenderar dem.