Bruk SideFX Houdini til å gjøre punktskyer til optimaliserte 3D-objekter for Dynamics 365 Guides og for komponenter i blandet virkelighet i apper opprettet med Power Apps
Denne opplæringen inneholder trinnvise instruksjoner for følgende oppgaver:
Konverter en punktsky til et 3D-objekt.
Optimaliser et 3D-objekt ved å redusere polygonantallet slik at det samsvarer med ytelsesmålene for Dynamics 365-programmer i blandet virkelighet.
Eksporter et optimalisert 3D-objekt som en GLB-fil som kan brukes i Dynamics 365 Guides og komponenter i blandet virkelighet i apper opprettet med Power Apps
Opprett en mal for behandlingsforløp slik at du raskt kan optimalisere punktskyer i fremtiden.
Denne opplæringen er bare til informasjonsformål for å vise hvordan SideFX Houdini fungerer med Microsoft Dynamics 365 Guides og Power Apps. Din bruk av tredjepartsprogrammer er underlagt vilkår mellom deg og tredjeparten. Microsoft Corporation er ikke tilknyttet, er ikke partner for og verken støtter eller sponser Side FX eller SideFX' produkter. Det finnes flere andre innholdsopprettingsapper du kan bruke til å forberede 3D-objektene.
Hva er Houdini?
Houdini er et verktøy for oppretting av 3D-innhold om fremgangsmåter. Den bruker et ikke-destruktivt nodebasert verktøysystem til å utforme behandlingsforløp og 3D-innhold.
Konfigurer miljøet ditt
Hvis du vil konfigurere miljøet, må du fullføre disse oppgavene:
Installer SideFX Labs-utvidelsen.
Konfigurer AliceVision for fotogrammetri.
Installer SideFX Labs-utvidelsen
SideFX Labs er et testgrunnlag for verktøy som kan hjelpe deg med å komme i gang med Houdini raskere. Denne samlingen med gratisverktøy inneholder verktøy som er nyttige for å konvertere punktskyer til optimaliserte 3D-objekter. Hvis du vil bruke SideFX Labs, må du bruke Houdini 18 eller nyere.
SideFX inneholder en opplæringsvideo som hjelper deg med å installere disse verktøyene.
Obs!
Du må installere Houdini før du kan installere SideFX Labs. Finn ut mer om hvordan du installerer Houdini.
Åpne Houdini.
Hvis du vil installere SideFX Labs, velger du plusstegnet øverst i Houdini-vinduet, Shelves og deretter avmerkingsboksen SideFX Labs.
På verktøylinjen som vises nær toppen av vinduet, velger du Update Toolset for å åpne installasjonsprogrammet.
Velg Update for å installere verktøyene.
Hvis installasjonen er vellykket, vises flere verktøy på verktøylinjen. Du kan deretter fortsette med denne opplæringen.
Konfigurer AliceVision for fotogrammetri
AliceVision er et fotogrammetrisk rammeverk for visuelt innhold som er utviklet av Mikros Image. Det gir algoritmer for 3D-rekonstruksjon og kamerasporing. Finn ut mer om AliceVision og AliceVision-programtillegget.
Hvis du vil ha mer informasjon om hvordan du installerer og konfigurerer AliceVision-programtillegget for Houdini, kan du se SideFX-opplæringen.
Importer en punktsky til Houdini
Houdini kan importere punktskyfiler i PLY-filformatet. Hvis filen er i et PTS-filformat, kan du konvertere den manuelt til PLY-format.
Konverter en PTS-fil til en PLY-fil
Åpne PTS-filen i et filredigeringsprogram, og legg til følgende overskrift.
************************ 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 ************************
I overskriften, ved siden av element vertex, erstatter du verdien 534993 med verdien som opprinnelig ble vist øverst i PTS-filen (men som nå følger overskriften umiddelbart).
Denne verdien er det totale antallet punkter i punktskyen.
Fjern den opprinnelige verdien etter overskriften. Følgende tabell viser en side-ved-side-sammenligning av filene før og etter at du har gjort de foregående endringene. Verdien element vertex er merket med rødt.
Øverst i PTS-filen Øverst i PTS-filen Lagre filen slik at den har filtypen PLY.
Importer PTS-filen
Åpne Houdini. En ny scene opprettes automatisk. I denne fremgangsmåten bygger du en kjede med noder for å behandle punktskyen i et 3D-objekt. Disse nodene er bygd i den nedre høyre ruten i Houdini-vinduet.
Høyreklikk i ruten nederst til høyre for å åpne TAB Menu. (Du kan også trykke på TAB-tasten.)
På TAB Menu velger du Import > File og deretter velger du ruten Geometry for å plassere noden.
Dobbeltklikk midt i fil1-noden (eller trykk på I) for å drille ned til filvalgdelen i noden, velg knappen File Chooser og velg deretter filen som skal importeres.
I nettleseren som vises, blar du til plasseringen av PLY-punktskyfilen du vil importere, velger filen og velger deretter Accept.
Punktskyen vises i hoveddelen av vinduet. Hvis du ikke ser den, kan du prøve å bruke musehjulet til å zoome ut til du ser hele punktskyen.
Klargjør punktskyen
Endre retningen på punktskyen
Når du først importerer en punktsky, har den noen ganger feil retning. Du kan korrigere retningen ved å legge til en transformeringsnode i nodetreet.
Høyreklikk i ruten Geometry for å åpne TAB Menu, og velg deretter Manipulate > Transform for å legge til en transformasjonsnode.
Dra fra prikken nederst på fil1-noden til prikken øverst på transform1-noden. På denne måten kobler du utdataene fra fil1-noden til inndataene fra transform1-noden. Velg deretter til høyre for transform1-noden. Høyre side av transform1-noden blir blå, og noden blir aktiv i hoveddelen av vinduet slik at du kan se modellen etter at retningen er endret.
Tips
Hvis du vil vise modellen i en bestemt fase av prosessen i Houdini, klikker du til høyre for den aktuelle noden. Denne funksjonen er nyttig hvis du noen gang må se på 3D-objektet ditt i en tidligere tilstand og redigere endringene som oppstod i denne tilstanden.
Legg til verdier i Rotate-raden i alternativruten over noderuten for å korrigere rotasjonen av modellen. Du kan ofte sette x-verdien til 270 for å rotere modellen i riktig posisjon. Hvis denne verdien imidlertid ikke fungerer, kan du prøve forskjellige verdier.
Du kan sentrere punktskyen over opprinnelsespunktet ved å legge til en aksejusteringsnode etter transformeringsnoden. Hvis du vil plassere noden, holder du musen over ruten Geometry, trykke på TAB-tasten for å åpne TAB Menu og deretter velg Labs>Geo>Labs Axis Align.
Dra for å koble utdatapunktet til nederst på transform1-noden til inndataprikken øverst på noden axis_align1. La standardverdiene stå som de er, siden de skal plassere punktskyen på toppen av opprinnelsespunktet (et ideelt sted for den).
Rydd opp i punktskyen for å fjerne avvikspunkter
Hvis punktskyen har avvikspunkter du vil fjerne, kan du velge og slette individuelle punkter eller punktgrupper.
Endre metoden Geometrivalg til Punkter og verktøyet Velg til Lassovalg.
Obs!
Du kan bruke en annen metode hvis du foretrekker det.
Velg punktene som skal slettes.
Trykk på Delete-tasten. En ny blast1-node vises. Inndataprikken på toppen av denne noden er knyttet til utdataprikken nederst på den siste noden du jobbet med.
Fortsett å fjerne punkter til du er fornøyd med resultatene. Hver sletting legger til en ny blast-node som du kan vise eller fjerne når som helst.
Konverter punktskyen til et nett
Både glTF-programmer og gjengivelsesprogrammer i sanntid krever at objektene representeres som en polygon overflate. Du kan bruke kommandoen Particle Fluid Surface til å koble punktene til en logisk overflate som polygonal geometri.
Velg i ruten Geometry for å åpne TAB Menu, og velg deretter Fluid>Particle Fluid Surface. Deretter velger du noden og legger den til i ruten Geometry.
Dra for å koble utdatapunktet til nederst på transform1-noden til inndataprikken øverst til venstre på noden particlefluidsurface1. Velg deretter på høyre side av noden particlefluidsurface1 for å aktivere noden i hoveddelen av vinduet.
Punktskyen vises gjengitt som et nett i hoveddelen av vinduet. Fanen Surfacing er valgt i øvre høyre rute over ruten Geometry.
Hvis fargedata er knyttet til punktene i punktskyen, kan du bruke fargeattributtene ved å legge til bokstavene Cd på slutten av verdien i feltet Transfer Attributes. Fargen vil da vises på nettet.
Hvis det er hull i nettet, som vist i illustrasjonen nedenfor, kan du justere gliderbryterne Particle Separation og Voxel Scale i ruten øverst til høyre for å forsøke å løse problemet.
Hvis du vil klargjøre nettet for forenkling (neste trinn i den overordnede prosessen), endrer du verdien i feltet Convert To fra Polygon Soup til Surface Polygons under Output. På denne måten kan du lage ny netting i nett og forenkle det.
Høyreklikk i ruten Geometry for å åpne TAB Menu, og velg deretter Polygon>Remesh. En node for ny netting legges til for å konvertere nettet til trekanter. På denne måten kan du forenkle 3D-objektet til en polygontelling som oppfyller ytelseskravene dine.
Dra for å koble utdatapunktet til nederst på particlefluidsurface1-noden til inndataprikken øverst til venstre på noden remesh. Velg i midten av remesh-noden for å aktivere den i ruten over ruten Geometry. Velg deretter på høyre side av noden remesh for å aktivere modellen i hoveddelen av vinduet. Du kan nå redigere egenskapene for den nye nettingen, og modellen i hoveddelen av vinduet vil gjenspeile disse endringene.
Eksperimenter med alternativene under Element Sizing for å få resultatene du ønsker. For feltet Edge Lengths kan du behold standardverdien (Uniform), eller du kan velge Adaptive og justere glidebryteren Relative Density (og andre alternativer) for å produsere nettet du vil ha.
Forenkle 3D-objektet for å forbedre ytelsen
Hvis du vil oppnå programspesifikke mål, må du kanskje forenkle 3D-objektet. Forenkling er prosessen med å behandle overflatepolygonene til en modell på nytt for å skape en lignende form med færre polygoner. Selv om denne prosessen reduserer visuell gjengivelse, bidrar det til å forbedre ytelsen. Følgende tabell viser en side-ved-side-sammenligning av en modell av høy kvalitet som brukes til lav scenekompleksitet i HoloLens og en modell av lav kvalitet som brukes til høy scenekompleksitet.
Høypolygont 3D-objekt | Lavpolygont 3D-objekt |
---|---|
500 000 trekanter | 8000 trekanter |
Forenkle en modell
I ruten Geometry trykker du på TAB-tasten for å åpne TAB Menu og velger deretter Polygon>PolyReduce for å plassere en PolyReduce-node i ruten Geometry.
Dra for å koble utdatapunktet til nederst på remesh-noden til inndataprikken øverst til venstre på noden polyreduce1. Velg i midten av noden polyreduce1, og velg deretter på høyre siden av noden for å aktivere den i hoveddelen av vinduet.
Under Reduction Amount i feltet Target velger du Output Polygon Count og bruker glidebryteren Number To Keep til å justere polygontellingen til å oppfylle ytelseskravene, men også for å opprettholde akseptabel visuell gjengivelse.
Punktskyen er nå konvertert til et optimalisert 3D-nett. I det neste trinnet skal du bake en høyoppløsningsstruktur på 3D-objektet for å gjenopprette noe av den visuelle gjengivelsen som fantes før forenklingen.
Bak en høyoppløsningsstruktur på et lavpolygonnett
En ulempe med å redusere antall polygoner i et nett er at mye av detaljene kan gå tapt. Hvis du vil gjenopprette noen av detaljene, kan du registrere dem og bruke dem som en struktur som legges lagvis på toppen av lavpolygonmodellen. I løpet av denne prosessen, som kalles strukturbaking, tar du et bilde av alle overflatene fra høypolygonmodellen og slår dem sammen til et teppe som du legger over modellen med lavpolygonmodell. På denne måten kan du oppnå ytelsen til en lavpolygonmodell, men beholde noen av de finere detaljene til en høypolygonmodell.
Strukturkoordinatene (også kalt UV-er) er par med tall (U og V) som lagres i geometrien til en modell. Disse tallene representerer på den måten at et 2D-bilde kan tildeles en 3D-overflate og gjør det mulig å definere overflateegenskaper som et bilde. Bildene kan være enkle dekaler eller komplekse materialkomponenter, for eksempel grovhet og metallisk. Du kan manuelt generere UV-plasseringer for et nett, eller prosessen kan gjøres halvautomatisk eller automatisk. AutoUV-overflateoperatøren er et verktøy i Houdini som kan generere UV-er. Det bruker et par automatiske metoder under opprettingen av UV-er.
Bak strukturen
Høyreklikk i ruten Geometry for å åpne TAB Menu, og velg deretter Labs>UV>Labs Auto UV for å legge til en AutoUV-node i scenen.
Under Method endrer du verdien i feltet Method til UV Unwrap.
Dra for å koble utdatapunktet til nederst på polyreduce1-noden til inndataprikken øverst på autouv1-noden.
Hvis du vil se før- og etter-objekter side om side, velger du knappen Visningsportoppsett og deretter To visninger side om side.
I hoveddelen av vinduet velger du Set View > UV viewport på rullegardinmenyen.
De utpakkede UV-ene vises til venstre, og 3D-objektet vises til høyre.
I ruten Geometry velger du Labs>Output>Labs Maps Baker for å legge til en maps_baker1-node.
Dra for å koble utdatapunktet til nederst på autouv1-noden til inndataprikken øverst til venstre på noden maps_baker1. (Prikken øverst til venstre er noden LAVE oppløsningsinndata.)
Dra for å koble utdatapunktet til nederst på particlefluidsurface1-noden til inndataprikken øverst til høyre på noden maps_baker 1. (Prikken øverst til høyre er noden HIGH Resolution input.)
Velg noden maps_baker1 og deretter, under Bake, endrer du verdien i feltet Preview Channel til diffuse. Under Bake Options angir du feltet Diffuse Map til diffuse.
Tips
Hvis du vil lagre prosjektet i en bestemt mappe, velger du knappen File Chooser ved siden av feltet Output Directory som vises i den forrige illustrasjonen. Når du baker en struktur, lagres PNG-strukturfilen som er lagret i en gjengivelsesmappe som opprettes i rotmappen for det lagrede prosjektet. Ved å lagre prosjektet i sin egen mappe blir det lett å finne den bakte strukturen.
Velg noden maps_baker1 og velg Bake i ruten med alternativer.
Høyreklikk i ruten Geometry for å åpne TAB menu, og velg deretter Managers>Material Network for å legge til en matnet1-node i scenen.
Dobbeltklikk på noden matnet1 for å åpne ruten VEX Builder.
Høyreklikk i ruten VEX Builder, og velg deretter Shaders > Principled Shader for å legge til et Principled Shader-materiale.
I ruten for alternativer på fanen Surface bruker du glidebryterne til å endre verdien i feltet Roughness til 0.6 og verdien i feltet Metallic til 0.1. (Du kan sette disse feltene til det du ønsker, men vi har funnet ut at disse verdiene er et godt utgangspunkt når de brukes med standardverdiene.)
På fanen Textures under Base Color velger du avmerkingsboksen Use Texture. Deretter velger du knappen File Chooser og velger strukturfilen *_color.png som du lagret i gjengivelsesmappen tidligere. Prinsippskyggen er nå klar til bruk.
Obs!
Du må gjerne endre materialet ytterligere. For formålet i denne opplæringen er denne konfigurasjonen tilstrekkelig.
I ruten VEX Builder velger du knappen Back (pil venstre) for å gå tilbake til ruten Geometry.
Velg Material > Material for å plassere en materialnode i ruten Geometry.
Dra for å koble utdatapunktet til nederst på autouv1-noden til inndataprikken øverst på noden material1.
Velg noden material1 og velg knappen Operator chooser. I dialogboksen Velg operator velger du fil1>matnett1>prinsippskygge1 for å velge prinsippskyggen du opprettet tidligere.
Velg på høyre side av noden for å aktivere den i hoveddelen av vinduet.
Strukturen gjengis over 3D-objektet med lavt polygonantall. Hvis den ser grei ut, kan du gå videre til neste trinn.
Eksporter modellen til en GLB-fil
I dette trinnet eksporterer du modellen til en GLB-fil slik at den kan brukes med Dynamics 365 Guides og Power Apps.
Høyreklikk i ruten Geometry for å åpne TAB Menu, og velg deretter Export>ROP GLTF Output.
Dra for å koble utdatapunktet til nederst på material1-noden til inndataprikken øverst på noden rop_gltf1.
I den øvre ruten endrer du verdien i feltet Export type til glb.
Velg knappen File Chooser ved siden av feltet Output File, og angi et navn og en destinasjon for GLB-filen. Pass på at du legger til .glb på slutten av filnavnet. Velg Accept når du er ferdig.
Velg Render to Disk for å fullføre eksporten og opprette GLB-filen.
Opprett en mal for å bruke innstillingene på nytt for andre punktskyer
Hvis du vil spare tid og arbeid, kan du opprette en mal. På denne måten kan innstillingene du oppretter for en punktsky, brukes for andre punktskyer. Selv om du fortsatt må velge Bake manuelt og sannsynligvis må justere et par verdier, kan du automatisere det meste av behandlingen.
Opprett en mal
Erstatt geometrien som for øyeblikket brukes med standardgeometri. Dette trinnet gjør malfilen lett slik at den lastes raskt.
I ruten Geometry velger du i midten av filnoden for å bytte til menyen File i øverste rute.
Endre verdien i feltet Geometry File til default.bgeo, og velg deretter Reload Geometry.
Legg merke til at geometrien er tegnet på nytt slik at den nå er en generell kube.
Endre filnavnet til noe generelt, for eksempel Mal.
Velg File > Save, og angi et navn som du kommer til å huske, som Prep_Mal.
Lukk Houdini.
Bruk malen
Åpne Houdini, velg File>Open, og velg deretter malen du nettopp opprettet.
I ruten Geometry velger du i midten av filnoden for å bytte til menyen File i øverste rute. Velg deretter knappen File Chooser ved siden av feltet Geometry File for å velge PLY-punktskyfilen.
Velg Reload Geometry for å laste punktskyen inn i scenen.
Gå til noden maps_baker1, og velg Bake for å bake en ny struktur for 3D-objektet.
Velg til høyre for noden material1 for å vise den bakte modellen.
Følg et av disse trinnene:
Hvis du er fornøyd med 3D-objektet, kan du gå til noden rop_gltfB og velge Render to Disk for å eksportere 3D-objektet.
Hvis du ikke er fornøyd med hvordan 3D-objektet ser ut, kan du justere innstillingene for nodene particlefluidsurface1, remesh og polyreduce1. Når modellen ser akseptabel ut, kan du bake strukturen på nytt og eksportere 3D-objektet.
Vis et 3D-objekt i Dynamics 365 Guides eller Power Apps
Når du har lagd et 3D-objekt, kan du bruke følgende koblinger til å finne ut mer om hvordan du bruker modellen i Dynamics 365 Guides eller Power Apps:
Mer informasjon
Skjermbildene i denne opplæringen er fra Houdini-programvaren for å gi klare instruksjoner om hvordan du bruker Houdini-programvaren. Finn ut mer om SideFX Houdini.
Microsoft Corporation er ikke ansvarlig for og fraskriver seg uttrykkelig alt ansvar for skader av noe slag som oppstår ved bruk av Houdini, eller avhengighet av disse instruksjonene. Dette dokumentet opprettes bare for å gi generell informasjon til kundene våre og tar ikke hensyn til individuelle forretningsplaner eller spesifikasjoner.
Bruken av varemerkede navn og bilder i dette dokumentet er bare for informativt og beskrivende formål, og Microsoft Corporation legger ingen kommersielle krav til bruken av dem, eller forslag til spons eller anbefaling.