Sto provando a creare un vertex wireframe/framment shader in Unity. Sembra possibile secondo lo this paper. Le idee generali sembrano essere che si passa un vettore di distanza calcolato nel vertex shader a ciascun frammento nello shader di frammenti, che può essere utilizzato per determinare quale luminosità disegnare la linea wireframe in base alla sua posizione all'interno di un poligono.È possibile accedere a tutti i vertici in un poligono in uno shader di vertici?
Da tutto ciò che ho letto, tuttavia, sembra che si abbia accesso a un singolo vertice in uno shader di vertici. Avrei bisogno di accedere a tutti i vertici vicini in un poligono per il vertice di ecah. Il documento sembra implicare che uno shader di geometria non è necessario, il che è positivo perché Unity non li supporta ancora.
Cosa mi manca? Non è mai possibile accedere ai vertici vicini in uno shader di vertici? Quello che sto cercando di fare è impossibile senza geometri shader?
Grazie per il vostro aiuto. Sai se questi vincoli sono qualcosa che può essere superato all'interno del motore Unity? È possibile passare queste informazioni extra in uno shader Cg come quelle che usa Unity? Da dove verrà eseguita questa transizione? – aardvarkk
@aardvarkk Questi vincoli non possono essere superati poiché sono vincoli dell'hardware/dell'interfaccia sottostante e non del motore o del linguaggio di ombreggiatura. Un vertex shader ha solo accesso a un singolo vertice e devi dare gli altri due come attributi di questo vertice. Non ho alcuna esperienza con Unity, ma Cg ha ovviamente attributi per-vertice e sono sicuro che Unity ha alcuni mezzi per fornire gli attributi personalizzati dei vertici del tuo modello. –
@aardvarkk Quindi hai altre domande sulla tua domanda originale (se puoi accedere ai vicini in VS e se il tuo obiettivo è impossibile senza GS)? Non otterrete risposte diverse da chiunque comprenda i vertex e gli shaders geometrici. L'unità non ha nulla a che fare con esso, in quanto non può superare magicamente i limiti dell'hardware grafico sottostante. –