Domanda

Qual è il solito modo per arrotondare i bordi su un cubo, un oggetto rettangolare come negli esempi?

Inserisci Descrizione dell'immagine qui  Inserire l'immagine Descrizione qui

Il risultato ideale sembrerebbe esattamente come queste immagini.

(Naturalmente, potresti letteralmente usare una rete che ha accuratamente arrotondato bordi e angoli, ma ci vogliono molti tris per raggiungerlo.)


.

Nota, ovviamente per un Non -Shader Approccio ...

Inserire l'immagine Descrizione qui

Aggiungi due piccole scatole piatte e semplicemente renderlo nuovo normale a metà strada, cioè 45 gradi, tra le due lati:

Inserisci la descrizione dell'immagine qui

Questo sarebbe disegnato perfettamente rotondo ...

GDG di seguito ha fornito un articolo in cui qualcuno asserisce che questo è davvero il modo migliore, se non utilizza un approccio shader.

Mi sto davvero chiedendo come fare questo con uno shader però.


.

Nota: tutorial incredibilmente dettagliata sull'approccio non shader

http://catlikecoding.com/unity/tutorials/rounded-cube/

È stato utile?

Soluzione

Utilizzando ombreggiatura differita È possibile accedere a G-Buffer a localizzare e round bordi come quello fatto in Questo documento .Sebbene sia una tecnica post-elaborazione, quindi è in grado di emulare una rotondità in un limite di alcuni pixel.

Inserire l'immagine Descrizione qui

Normali medie semplici (larghezza 1 pixel):

Inserire la descrizione dell'immagine qui

Normali medie semplici (larghezza 2 pixel):

Inserire l'immagine Descrizione qui

Normali medie semplici (larghezza di 3 pixel):

Inserire l'immagine Descrizione qui

Altri suggerimenti

Dividerei sicuramente a una risposta orientata allo shader, ma soprattutto se gli shader necessari non sono disponibili su una determinata piattaforma, lo realizzerei con alcuni modelli "Livello di dettaglio" AKA Lod. .

  • Dare il gameobject per questo oggetto le maglie per una scatola a 6 lati, una scatola leggermente curva e una casella up-close-curves.( http://www.wings3d.com/ è il mio strumento di modellazione semplice)

    Dare il gameobject uno script di comportamento che controlla ogni fotogramma per la distanza dalla fotocamera.

  • Attivare la rete appropriata in base alla distanza e disattivare gli altri, questo dovrebbe essere fatto a distanza in cui il cambiamento non è rilevabile nella massima risoluzione disponibile per il lettore.

    Questa tecnica è abbastanza ampiamente utilizzata nei giochi 3D, un buon modo per rappresentare sciami lontani di cose che possono diventare molto più dettagliate una volta che la fotocamera si avvicina.

  • Siamo stati in grado di realizzare cubetti smussati per il nostro gioco WorldTobuild.La chiave è davvero che puoi andare avanti e fare il modello smussato, quindi spostare i vertici in gruppi.

    Così in breve, tutto ciò che dovevo fare per raggiungere l'effetto era:

      .
    • Crea un cubo smussato (ho usato il frullatore).
    • Trova quali vertici si sposterete in ogni direzione dalla loro posizione dal centro.
    • Calcola i bordi smussati e impostare le dimensioni esatte.

    Ho scritto un articolo su questo qui.Scorri fino alla fine dell'articolo se vuoi solo conoscere il processo:

    https://www.linkedin.com/ Pulse / Codifica-Resiseble-Beveled-Cubes-Unity-Richard-Christley

    Autorizzato sotto: CC-BY-SA insieme a attribuzione
    Non affiliato a StackOverflow
    scroll top