Dal wiki : "l'API Vulkan è stata inizialmente definita" l'iniziativa OpenGL di prossima generazione "da Khrono" e che è "uno sforzo di riprogettazione fondato per unificare OpenGL e OpenGL ES in un'unica API comune che non sarà retroattiva compatibile con le versioni OpenGL esistenti ". Quindi quelli che ora stanno …
Quando si scrivono shader non banali (proprio come quando si scrive qualsiasi altro pezzo di codice non banale), le persone commettono errori. [citazione necessaria] Tuttavia, non posso semplicemente eseguirne il debug come qualsiasi altro codice - dopo tutto non puoi semplicemente collegare gdb o il debugger di Visual Studio. Non …
Ho visto il termine stvenire fuori alcune volte guardando altri shader di frammenti OpenGL. Tuttavia, non so che cosa rappresenta o a cosa serve. Ecco un esempio: uniform vec2 u_resolution; vec2 st = gl_FragCoord.xy/u_resolution; Posso capire che questo sta convertendo le coordinate dei pixel in coordinate normalizzate di 0,0 - …
La documentazione di OpenGL afferma che fwidth returns the sum of the absolute value of derivatives in x and y. Cosa significa questo in termini meno matematici e c'è un modo per visualizzarlo? Sulla base della mia comprensione della funzione, fwidth(p)ha accesso al valore di pin pixel vicini. Come funziona …
Ho una nuvola di punti che viene visualizzata sullo schermo. Ogni punto ha la sua posizione e colore, nonché un ID. Mi è stato chiesto di eseguire il rendering degli ID per ogni punto su una trama, quindi ho creato un FBO e ho allegato due trame, una per il …
Alcuni anni fa ho provato a implementare questa gemma GPU in OpenGL per generare terreno procedurale 3D usando Marching Cubes . L'articolo suggerisce di implementare Marching Cubes in uno shader di geometria con la massima efficienza. Ciò significa che devo eseguire lo shader una volta per ogni voxel nel dominio …
Dopo così tante letture sulle trasformazioni, è tempo di implementare una trackball per la mia app. Capisco di dover creare un vettore dall'origine a cui viene fatto clic sul mouse e quindi un altro dall'origine a dove viene rilasciato il mouse. La mia domanda è: devo trasforare i pixel (x, …
Pensavo di aver trovato una comprensione generale di come funzionavano le convenzioni e le estensioni dei nomi OpenGL, fino a quando non mi sono imbattuto in un caso che mi ha confuso. Ecco la mia comprensione finora: Nessun suffisso - ad es glGenBuffers(). Questa funzione fa parte del profilo principale. …
La fusione alfa può essere attivata per rendere trasparenti le superfici, in questo modo: glDisable(GL_DEPTH_TEST); //or glDepthMask(GL_FALSE)? depth tests break blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Ma questo funziona solo se gli oggetti sono resi in primo piano. Altrimenti le cose sullo sfondo appaiono davanti agli oggetti più vicini, come il pavimento …
In GLSL, l'interpolazione corretta in prospettiva degli attributi del vertice è l'impostazione predefinita: è possibile disabilitarla per specifici attributi del vertice usando il qualificatore noperspective . A parte gli shader post-elaborazione, non ho mai visto l'interpolazione corretta della prospettiva disabilitata - ci sono altri casi d'uso? Inoltre, fa davvero la …
Ho un paio di shader di calcolo che devono essere eseguiti in un certo ordine e le cui uscite dipendono dagli ingressi precedenti. Idealmente, non dovrò mai copiare un buffer lato client e fare tutto il mio lavoro sulla GPU. Considera che ho due shader di calcolo compilati e collegati …
Vorrei caricare mesh arbitrarie e tracciare spesse linee nere lungo i bordi per ottenere un aspetto simile a quello dei toni. Sono riuscito a disegnare una sagoma nera attorno agli oggetti usando il buffer dello stencil. Puoi vedere il risultato qui: Ma ciò che manca sono le linee nere nell'oggetto …
Sono piuttosto confuso riguardo a quella funzione. Il riferimento al contesto GLFW dice quanto segue: Questa funzione rende corrente il contesto OpenGL o OpenGL ES della finestra specificata sul thread chiamante. Un contesto può essere reso corrente su un singolo thread alla volta e ogni thread può avere un solo …
In OpenGL le funzioni degli oggetti buffer ( glBufferData, glBufferSubDatae probabilmente alcuni altri) hanno un parametro usage, descritto dalla documentazione come un suggerimento dell'uso previsto, probabilmente destinato ad aiutare l'implementazione a produrre prestazioni migliori. uso Specifica il modello di utilizzo previsto dell'archivio dati. La costante simbolica deve essere GL_STREAM_DRAW, GL_STREAM_READ, …
Ho scoperto che alcuni motori utilizzano mappe derivate anziché mappe normali dello spazio tangente . Dopo alcune letture, sembra essere un modo davvero fantastico di sostituire le normali dello spazio tangente ma ci sono alcuni svantaggi nel usarle? Perché continuare a usare le normali dello spazio tangente? È possibile confrontare …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.