keskiviikko 21. joulukuuta 2022

FreeCAD & Blender: CAD-mallin optimointi

  1.  Tuo STEP-malli FreeCADiin ja:
    1. avaa Mesh Design Workbench
    2. valitse Create mesh from shape...
    3. anna Surface ja Angular deviation -arvoiksi sellaiset, joilla meshin pinnasta tulee sopivan tiheä, esim. 0.10 mm ja 5.00 °;
      1. valitse alkup. Part ja piilota se Spacella
      2. valitse Meshed-malli ja paina V+7 ja V+6; näkymää vaihdetaan Flat linesin ja Shadedin välillä.
    4. Paina Combo Viewistä Meshed-mallia RMB:llä ja valitse Export mesh ja exporttaa se Binary STL -formaatissa.

Importointi Blenderiin:

  1. Blenderissä valitse File → Import → Stl (.stl) ja Blender File View -ikkunassa valitse exporttattu STL-mallin ja laita Scaleksi 0.001.
  2. Laita importoidun mallin nimen perään "_hipoly".
  3. Tee mallille oma materiaali ja laita Viewport Shadingiksi Material ja Preview ja mallin materiaaliksi Glossy BSDF ja sopiva Roughness-arvo, jolloin terävät edget näkyvät selvästi.
  4. Koska STL-mallin pinta on Flat:
    1. malli valittuna paina RMB ja valitse Shade Smooth
    2. valitse Object Data Properties → Normals ja enabloi Auto Smooth
    3. laske Auto Smooth Angle 0°:eeseen ja nosta hitaasti, kunnes kaikki kaarevat pinnat ovat smootheja.

 Hipoly-malli:

  1. Lisää Remesh-modifier;
    1. Smooth
    2. Octree Depth: 10–12
    3. Smooth Shading Enabled.
  2. Lisää Smooth-modifier;
    1. Factor esim. 2
    2. Repeat esim. 4.
  3. Jos kaarevissa pinnoissa näkyy alkuperäisen meshed-mallin kulmikkuutta:
    1. applyta modifierit ylhäältä alas
    2. avaa Scult-mode ja Smooth brushilla tasoita kulmikkuudet.

Lowpoly-malli:

  1. Kopioi importoitu malli ja vaihda nimen "_hipoly" nimeen "_lowpoly".
  2. Lisää lowpoly-malliin Decimate-modifier ja laske Ratio niin alas kuin voit laadun kärsimättä liikaa ja Applyta se.
  3. Lisää Shrinkwrap-modifier ja valitse hipoly-malli Targetiksi, jolloin lowpoly-malli "kääritään" hipolyn pintaan.
  4. Nosta Object Data Propertiesin Auto Smooth sopivaan arvoon, jotta kaarevat pinnat ovat smootheja ja terävät edget säilyvät terävinä.
  5.  Valitse Edit modessa terävät edget ja tee niistä seamit.
  6. Laita mallin materiaaliin UV-testitekstuuri.
  7. Tee mallille Smart UV Project:
    1. valitse kaikki facet ja valitse UV → Seams from Islands ja enabloi kumpikin: Mark Seams ja Sharp.
  8. Nosta Auto Smooth 180:een.

Cage:

  1. Kopioi lowpoly-malli ja laita sen suffixiksi "_cage".
  2. Poista sen materiaali ja laita Object Properties → Viewport Display → Display As → Wire
  3. Lisää siihen Displace-modifier ja nosta Midlevel-arvo niin lähelle yhtä, että cage peittää sekä lowpoly- että hipoly-mallin.

Beikkaus:

Normal map:

  1. Luo lowpoly materiaaliin uusi Image Texture ja anna sen nimeksi NormalMap valitse se Shading-näkymässä, jotta tekstuuri rendataan varmasti siihen.
  2. Piilota lowpoly-malli ja valitse ensin hipoly- ja sitten lowpoly-malli.
  3. Valitse Render Properties → Bake ja sieltä:
    1. Render Engineksi Cycles
    2. Render → Max Samplesiksi 1024
    3. Bake Typeksi Normal
    4. enabloi Selected To Active
    5. enabloi Cage ja laita Cage Objectiksi luomasi cage-malli.
  4. Valitse ENSIN hipoly- ja sitten lowpoly-malli.
  5. Valitse Bake, jolloin beikataan normal map.
  6. Jos kuva on ok, valitse UV Editorista Image → Save As... ja tallenna kuva OpenEXR:nä, jonka Color Depth on Float (Full).
  7. Avaa OpenEXR-kuva Photarissa, muuta se 8-bittiseksi ja tallenna pakkaamattomana PNG:nä (https://www.youtube.com/watch?v=6D5tBEjS-N0).

Normal mapin artifaktien korjaus:

  1. Laita lowpoly-malliin bakettamasi normal map sekä materiaali täydellä metallnessilla ja 0:lla roughnessilla;
    1. etsi kaikki tasaisilla pinnoilla olevat artefaktit, valitse niiden facet ja Select → Select Linked → Linket Flat Faces, jolloin valitaan kaikki ympärillä olevat samalla tasaisella pinnalla olevat facet
    2. Valitse UV Editor -ikkunassa UV → Export UV Layout, jolloin tallennetaan valitut UV-islandit maskina

 

AO:

  1. Luo hipoly-mallin materiaaliin uusi Image Texture ja anna sen nimeksi AO.
  2. Piilota lowpoly-malli ja valitse ensin hipoly- ja sitten lowpoly-malli.
  3. Valitse Render Properties → Bake ja sieltä:
    1. Render Engineksi Cycles
    2. Bake Typeksi Ambient Occlusion
    3. enabloi Selected To Active
    4. enabloi Cage ja laita Cage Objectiksi luomasi cage-malli.
  4. Valitse ENSIN hipoly- ja sitten lowpoly-malli.
  5. Valitse Bake, jolloin beikataan ao map.
  6. Jos kuva on ok, valitse UV Editorista Image → Save As... ja tallenna kuva 8-bittisenä mustavalkoisena PNG:nä.

tiistai 13. joulukuuta 2022

Photoshop: Valinnasta vektori-shape

  1. Valitse haluamasi asia.
  2. Rectangular Marquee Tool valittuna paina kuvan päällä RMB → Make Work Path ja laita Tolerance-arvoksi 1.0 pixels.
  3. Valitse Custom Shape -tool, valitse ylärivin pudotusvalikosta Path ja Shape, jolloin work pathista luodaan uusi Shape-layer.
  4. Säätääksesi Fill-väriä ja Strokea, sama työkalu valittuna valitse pudotusvalikosta Shape.

keskiviikko 7. syyskuuta 2022

Blender: Boolean-mallinnus-workflow

Hipoly-basemesh:

  1. Mallinna hipoly-basemesh;
    • yritä käyttää quadeja
    •  käytä terävissä reunoissa aina 4-poleja ja terävissä kulmissa aina 3-poleja
    • älä yritäkään liittää erillisiä osia yhteen vaan jätä ne irralleen, toistensa sisään
    • laita terävien reunojen crease-arvo 1:een.
  2. Lisää Subdivision Surface -modifier
    • laita niin suuri Levels-arvo, että kaarevat pinnat ovat varmasti sulavia
    • enabloi Use Creases.

 Union- ja Difference-booleanit:

  1. Käytä Bool Toolia!
  2. Mallinna boolean-mallit ja lisää ne Collectioniin niin, että Difference-mallit ja Union-mallit ovat omissa Collectioneissaan.
  3. Lisää base meshiin kaksi Boolean-modifieria;
    • laita toiseen Difference ja toiseen Union
    • valitse niiden malleiksi mallintamasi Difference- ja Union-Collectionit.
  4. Lisää Remesh-modifier Smooth-outputilla ja enabloi Smooth Shading.
  5. Lisää Smooth-modifier ja säädä Factor- ja Repeat-arvoja, jotta teräviin reunoihin tulee sopiva pyöristys.

Intersect-booleanit (pinnan mukaisesti kulkeva kohouma tai kaiverrus)

  1. Tee Hipoly-malli-kappaleen stepit 1–2.
  2. Lisää boolean-mallit omiinn Intersect-Collectioneihinsa niin, että kohoumille ja kaiverruksille on kullekin oma Collection.
  3. Valitse boolean-mallit ja lisää niihin Boolean-modifier;
    1. valitse Objectiksi alkup. malli ja valitse Intersect.
  4. Varmista Edit modessa, että alkup. mallin kaikki facet on valittu ja ettei yksikään boolean-mallin face ole valittu, minkä jälkeen Object Modessa Applyta boolean.
  5. Mene Edit modeen ja valitse Face Select (3), jolloin kaikki intersectillä leikatut facet pitäisi olla valittuna.
  6. Valitse Select → Select Invert ja paina delete → Faces.
  7. Lisää Solidify-modifier;
    1. laita modeksi Complex
    2. laita Thickness Modeksi Even
    3. nosta Thicknessiä ja laita Offset-arvoksi 0.0.
  8. Valitse alkup. malli ja lisää Boolean-modifier:
    valitse tyyliksi Union tai Difference
    valitse Objectiksi intersect-malli.
  9. Lisää Remesh-modifier Smooth-outputilla ja enabloi Smooth Shading.
  10. Lisää Smooth-modifier ja säädä Factor- ja Repeat-arvoja, jotta teräviin reunoihin tulee sopiva pyöristys.

Hipoly-mallin materiaalit:

  1. Valitse Viewport Shadingiksi Solid ja Lightingiksi Flat.
  2. Applyta hipoly-mallin modifierit ylhäältä alas.
  3. Valitse interaction modeksi Vertex Paint.
  4. Valitse Paint → Dirty Vertex Colors, jolloin tasaisista pinnoista tulee harmaat, kulmista valkoiset ja nurkista mustat.
  5. Valitse maalattavaksi väriksi tasaisen pinnan harmaa ja "pyyhi" valkoisia kulmia sieltä, missä niiden ei pidä olla niin kirkkaita.
  6. Tee hipoly-malliin triplanar-mäpätty materiaali, jossa hyödynnät generoimiasi dirty vertex coloreja.

Lowpoly-malli:

  1. Kopioi hipoly-malli täsmälleen samaan paikkaan hipoly-mallin kanssa.
  2. Poista sen Remesh- ja Smooth-modifierit.
  3. Applyta Subdivision Surface -modifier ja sen jälkeen Booleanit ylhäältä alas.
  4. Lisää Decimate-modifier ja laske sen Ratio-arvo niin alas, että mallin muoto säilyy vielä järkevänä ja kaarevat pinnat eivät mene liian kulmikkaiksi.
    1. Enabloi Triangulate, jolloin kaikista faceista tulee kolmioita.
    2. Applyta Decimate, kun sopiva arvo on löytynyt.
  5. Edit Modessa valitse Select → Select Sharp Edges, jolloin kaikki terävät edget valitaan ja muuta ne Seameiksi.
  6. Valitse Edit Mode, kaikki facet ja UV Editor -ikkunassa valitse Unwrap;
    1. Valitse Methodiksi Conformal.
    2. Valitse Pack Islands. Lisää vähän Marginia, jolloin UV-saarekkeiden väliin tulee vähän tyhjää.
  7. Laita lowpoly-mallin materiaaliin testitekstuuri, jotta näet, onnistuko UV-mäppäys oikein.
     

Beikkaus:

Normal Map:

  1. Kopioi lowpoly-malli ja laita sen nimeen suffix "_cage".
  2. Laita cage-malliin Displace-modifier;
    1. Laita Midlevel-arvoksi ihan vähän alle 1.0 niin, että cagen pinta paisuu peittäen juuri ja juuri sekä hipoly- että lowpoly-mallin.
  3. Avaa UV Editor ja luo uusi power-of-twossa oleva Image ja anna sille nimi esim. Normal.
  4. Valitse mallin materiaali ja valitse sen Base Colorin kohdalla oleva keltainen pallukka;
    1. valitse Texture → Image Texture
    2. valitse luomasi Normal-niminen Image.
  5. Valitse Render Properties ja sieltä:
    1. Render Engineksi Cycles
    2. Bake Typeksi Normal
    3. enabloi Selected To Active
    4. enabloi Cage ja laita Cage Objectiksi luomasi cage-malli.
  6. Valitse ENSIN hipoly- ja sitten lowpoly-malli.
  7. Valitse Render Properties → Bake.
  8. Jos kuva on ok, valitse UV Editorista Image → Save As... ja tallenna kuva

Vertex Colors:

  1. Lisää hipoly-mallin materiaalin Color-nodeen Vertex Color -node ja valitse Vertex Color Indexiksi luomasi index; default-nimi on "Col".
  2. Avaa Render Properties → Bake;
    1. muuta Bake Typeksi Diffuse
    2. disabloi Contributionsista Direct ja Indirect
    3. enabloi Selected To Active
    4. enabloi Cage ja laita Cage Objectiksi luomasi cage-malli
    5. Valitse ENSIN hipoly- ja sitten lowpoly-malli.
    6. Valitse Render Properties → Bake.
    7. Jos kuva on ok, valitse UV Editorista Image → Save As... ja tallenna kuva.

maanantai 5. syyskuuta 2022

Blender: Grid Fill -remeshaus

Snäppäys hipoly-malliin:

  1. Enabloi Snap ja valitse Snap to → Face
  2. Valitse Orientationiksi View.
  3. Siirrä verteksejä aina transform gizmon valkoisesta pallosta, jolloin verteksejä siirretään vapaasti, ja ne pysyvät aina hipoly-mallin pinnassa.
  4. Valitse oik. yläreunasta Viewport Shading → Color → Object.
  5. Valitse hipoly-malli ja Properties → Viewport Display → Color → Alpha-väri alas.

Verteksien piirtäminen:

  1. Luo yksittäinen verteksi: Object Modessa Add → Mesh → Single vert → Single vert.
  2. Siirrä verteksi hipoly-mallin pintaan ja pidä huoli, että sen pivot on täsmälleen samassa kohdassa kuin hipoly-mallin pivot.
  3. Lisää uusia verteksejä valitsemalla verteksi ja RMB → Extrude Vertices.
  4. Joinaa verteksit yhteen suljetuksi loopiksi valitsemalla verteksit, RMB → Merge Vertices → At center.

Grid FIll:

  1. Valitse loopin kaikki verteksit.
  2. Valitse yläreunan valikosta Face → Grid Fill.

torstai 1. syyskuuta 2022

Blender–Unity: Mallinnusworkflow suorakulmaisille malleille

Suorakulmainen malli tarkoittaa sellaista, jonka tahkot ovat suoraan akseleihin päin, esim. laatikko, kirjahylly, palkki, pylväs...

Blenderissä:

  1. Luo malli käyttäen eri kokoisia ja muotoisia cube-primitiivejä.
  2. Laita beveloitavien edgejen Edge Bevel Weightiksi 1.000. 
  3. Enabloi Object Data Properties → Normals → Auto Smooth.
  4. Laita sen objekteihin Bevel-modifier, jonka:
    1. Amount on 0,2–0,3 mm.
    2. Limit Method on Weight
    3. Segments on 1.
    4. Harden Normals on päällä; näin bevelien reunoissa olevien verteksien normaalit asetetaan kohtisuoraan isoihin pintoihin nähden.
  5. Laita WeightedNormal-modifier, jonka:
    1. Weight-arvo nosta 100:aan; näin isojen kaarevien pintojen vieressä olevat tasaisten pintojen verteksien normaalit asetetaan kohtisuoraan tasaiseen pintaan nähden.
  6. Mäppää UV-kanava 2 uniikisti niin että kaikkien objektien pinnat tulevat UV-koordinaattien sisään.
  7. Beikkaa AO-tekstuuri käyttämällä UV-kanavaa 2.
  8. Exporttaa malli FBX:ksi.

Unityssä:

  1. Käytä shaderia, jossa on seuraavat ominaisuudet:
    1. PBR
    2. Triplanar mapping object spacena
    3. Occlusion-tekstuuri, joka käyttää UV-kanavaa 2.

Jos pinta on yksivärinen, esim. muovi tai maalattu puu tai metalli:

  • väritä se albedo-väriarvolla
  • käytä albedo-tekstuurina 8-bittistä mustavalkoista tilettävää tekstuuria, joka tummentaa pintaa sieltä täältä
  • käytä smoothness-tekstuurina 8-bittistä mustavalkoista tilettävää tekstuuria.

Jos pinta on monivärinen, esim. paljas kivi tai puu:

  • väritä se albedo-tekstuurilla
  • käytä tilettävää MOHS-tekstuuria.

Kummassakin tapauksessa käytä normal mappia.