Calcolo delle normali in WebGL

Mi sono divertito a creare questo esperimento e se ho smanettato bene WebGL, credo non sia possibile far calcolare le normali direttamente al vertex shader, nel caso la mesh 3D modifichi la propria forma (come nel mio esempio). Con il vertex shader puoi accedere solo alla coordinata attualmente in trasformazione e non mi pare esistano barbatrucchi per fare un lookup su altri vertici, operazione necessaria per il calcolo delle normali delle facce. Sono pressochè sicuro esistano vari metodi per “simulare” il calcolo utilizzando texture mapping come base dati, ma è una tecnica che ho deciso di non esplorare per adesso. Probabilmente in WebGL 2 sarà integrato anche un geometry shader dove questo limite verrà superato, o forse no perchè è un qualcosa di particolarmente pesante. Ad ogni modo, far eseguire il calcolo delle normali direttamente alla GPU, invece che alla CPU (anzi a JavaScript che è un compilatore just-in-time di una macchina virtuale), è particolarmente vantaggioso grazie all’elevato grado di parallelizzazione nei calcoli vettoriali.

Continua a leggere “Calcolo delle normali in WebGL” →

Dalla Business Logic alla Graphical User Interface…

Oggi l’attività principale di uno sviluppatore sembra sia diventata disegnare interfacce grafiche. Una volta ci si concentrava sulla logica di business, cercando di creare applicazioni architetturalmente solide, armoniche e funzionali, ma oggi questa pratica sembra ormai del tutto in disuso. Sono un programmatore di vecchia data e ricordo che durante la “golden age” informatica, quando Windows regnava incontrastato, l’interfaccia grafica delle applicazioni era piuttosto standard, gli unici arricchimenti stilistici venivano fatti per rendere il programma più facilmente fruibile. Anzi, paradossalmente, quando si incontravano software particolarmente accattivanti dal punto di vista grafico, li si etichettava come scarsi a livello ingegneristico (nello strato di business logic appunto): si erano concentrati sull’apparenza che serviva a coprire le magagne tecniche. Avrete presente il famoso detto “non si giudica un libro dalla copertina“.

Ma oggi l’interfaccia grafica È il programma!

Continua a leggere “Dalla Business Logic alla Graphical User Interface…” →

Giochicchiando con WebGL

WebGL è veramente forte!!! L’idea di poter integrare in una pagina web tutta la potenza di OpenGL utilizzando un semplice editor di testo, con accelerazione hardware tra l’altro, lo rende particolarmente interessante. Oggi volevo sperimentare l’integrazione di un tag <canvas>, con contesto WebGL appunto, all’interno di una pagina HTML e mi è venuto in mente di modificare l’header del mio template WordPress, che è questo qua: Phosphor WordPress template.

Invece di un’intestazione con sfumatura statica ho deciso di creare un semplice scriptino TypeScript che mi ciclasse colori casuali dentro 2 triangoli. Tutto molto semplificato e leggero da eseguire su ogni browser. Ecco il codice sorgente se può interessare: Codice sorgente TypeScript.

Utilizzare il tag canvas in questa maniera è un tentativo amichevole di resuscitare le vecchie applet Java ormai morte e sepolte … poverine 🙂

Ciao (Giz)mondo!

Benvenuto in WordPress nel mio sito web! 🙂 Mi sono ricordato della console portatile Gizmondo rilasciata nel 2005 e plonkata nel 2006, Sony e Nintendo hanno veramente tremato dalla paura 😀 Visto il fallimento del mio precedente sito, m’è sembrato doveroso dedicare il primo post del nuovo blog ad un celebre fallimento mondiale forse poco conosciuto.

Un blog dedicato all’informatica ed ad altre oscenità da nerd, divertitevi se vi interessa, un saluto