Melyek a vonalak vázolása?

Nos, általában véve az az elv, amellyel egy vázlatos shader készül, közel azonos.
csak a normál pont eltolódását teszik, és a szokásos geometriában vannak.
és a képen látható hiba csak akkor jelenik meg, ha az objektumban lévő simító csoportok eltérőek.
általában, hogy a vázlat normális legyen, azt a hálóra kell dobni, ahol minden edgek lágyak.
Nem tudom más módon, hogy megkerüljem az ilyen álarcokat. és valójában nekem is, ők nem))

magoga írta: Nos, általában véve az az elv, amellyel körvonalazó shader készül, közel azonos.
csak a normál pont eltolódását teszik, és a szokásos geometriában vannak.
és a képen látható hiba csak akkor jelenik meg, ha az objektumban lévő simító csoportok eltérőek.
általában, hogy a vázlat normális legyen, azt a hálóra kell dobni, ahol minden edgek lágyak.
Nem tudom más módon, hogy megkerüljem az ilyen álarcokat. és valójában nekem is, ők nem))


Nem tette ezt a kifejezést

csak a normál pont eltolódását teszik, és a szokásos geometriában vannak.


a normális csak egy vektor, amely merőleges a pontra, és ugyanolyan érték 0-ról 1-re, vagy nem? Hogyan jelenhet meg egy normális változás egy vonalat?

a normális csak egy vektor, amely merőleges a pontra, és ugyanolyan érték 0-ról 1-re, vagy nem? Hogyan jelenhet meg egy normális változás egy vonalat?


nem pontosan. igen, normalizálva van 0-tól 1-ig terjedő érték, és kizárólag irányhoz használják őket.

float3 norm = mul ((float3x3) UNITY_MATRIX_IT_MV, v.normal);
float2 offset = TransformViewToProjection (norm.xy);
o.pos.xy + = offset * _Outline;

karoch. float3 norm = mul ((float3x3) UNITY_MATRIX_IT_MV, v.normal); - az egyes pontok normál (iránya), TransformViewToProjection (norm.xy) - átkerül a képernyő koordinátáihoz,
o.pos.xy + = offset - és az o.pos (pozicionálási pontok) (o.pos.xy - az egyes pontok + offset képernyő koordinátái)
Nos, akkor szaporodhat _Outline. A probléma az, hogy ha kemény széle van. akkor minden pontnak 2 normálpontja van, és különböző irányokba mutat. és ennek következtében az offset hozzáadásával kiderül, hogy a kocka, amelyet szétszórta, tk minden oldalát ellensúlyozza, ahol a pontok jelzik a pontokat

bliiin, hogy nem beszélt a kiegészítő könyvtárról és az appdata_base-ról, fél órát töltött rá. Figyelj, tetszik nekem

Shader "kezdő / 1 lapos színű" # 123;
Tulajdonságok # 123;
_Color # 40; "_Color". szín # 41; = # 40; 1.0. 1.0. 1.0. 1.0 # 41;
_Outline # 40; „Vázlat”. tartomány # 40; 0. 1 # 41; # 41; = 0,5
# 125;
SubShader # 123;
Pass # 123;
CGPROGRAM
#pragma vertex vert
fragmentum fragmens
#include "UnityCG.cginc"


float4 _Color;
úszó _Outline;

struct vertexInput # 123;
float4 vertex. helyzetben;
float4 normális. NORMAL;
# 125; ;
struct vertexOutput # 123;
float4 pos. SV_POSITION;
float4 col. SZÍN;
# 125; ;

vertexOutput vert # 40; appdata_base v # 41;
# 123;
vertexOutput o;
o. pos = mul # 40; UNITY_MATRIX_MVP. v. csúcs # 41; ;
float3 norm = mul # 40; # 40; float3x3 # 41; UNITY_MATRIX_IT_MV. v. normális # 41; ;
float2 offset = TransformViewToProjection # 40; norma. xy # 41; ;
o. pos. xy + = offset * _Outline;
return o;
# 125;

float4 frag # 40; vertexOutput i # 41;. SZÍN
# 123;
vissza _Color;
# 125;


xs Th nem helyes, de az én tárgyaim csak növekednek minden irányban, nincsenek vonalak

magoga írta: Nos, ez nem opcionális, és a legtöbb, amelyik sem szabványos, appdata_base, appdata_full, stb. csak egy sor szabványos intuíció a vertek árnyékolók számára.
By the way, ha ezt használod
struct vertexInput
float4 vertex. helyzetben;
float4 normális. NORMAL;
>;
Nos, szükséged van ..


Igen, én póni, ami nem szükséges. Igen, nem igazán hozza létre saját struktúráit, ha használhatja a szabványosakat? Nem értettem, hogy miért, az általam kidobott kóddal az objektum mindhárom irányban megnagyobbodott, ezért nincs vázlat, hanem egy teljes autoobjektum. Egyébként ez a shader két passzval rendelkezik? Az elsőben vázlatot rajzolnak, és a másodikban egy közönséges tárgyat?

Csak egy kocka nem olyan tárgy, amely jól néz ki a vázlattal. Csökkentse a körvonal távolságát (a vonal "vastagsága").


Igen, nem, nincs egyáltalán, mélyre kell kémizálnom, megkarcolom. Íme, hogy a kocka vázlat nélkül néz ki, a legkevesebb körvonallal, és ugyanolyan vázlattal, de másrészt
Ui nézzen alulról felfelé!


A világításhoz szükségünk van a normál irányokra, mint a bal oldali képen, de a körvonal extrudálásához, mint a normál jobb oldalon. Készítsen 2 normál normát, 1 - hagyja őket a normálokba, a második pedig a csúcsok színeiben.
Mindenesetre 2 lépést kell tennie: 1- Cull Front, 2-Cull Back, t.ch. IMHO gyorsabb, mint 2 különálló tárgy, csak a bőrű háló.
-------------
Outline, rajzolhat és küldhet be egy effektet, az shader-csere-projektben. van egy példa a vázlatra, a mélységek és a normálok közötti különbségekre.

post feldolgozású nazorista IMHO.
de ahhoz, hogy 2 normál normál csomagot készítsünk, az egyik a normál normál értékű második színében, ez a norma. a megvilágítási szín, a normál normál világítás.

Kapcsolódó cikkek