Vai al contenuto
user91

Programmare Motori Di Render

Recommended Posts

Ciao (spero di scrivere nella sezione giusta) sono un programmatore, ancora non molto esperto di C/C++, volevo chiedervi quale sono le basi per programmare un motore di render, anche un semplice raytracer per il momento. (ambizioso lo so :rolleyes: )

conoscenze particolari e se conoscete link dove ne parlano(anche in inglese) e buoni libri.

grazie

user91

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Bhe... domanda interessante!

1. Prima di tutto sarebbe buona cosa imparare il C/C++ con la stessa facilità con cui sai fare 1+1!!!! ...e non sto scherzando! Dovrai avere estrema familiarità con puntatori, puntatori a puntatori, grafi, alberi, matrici, vettori, ecc... questo perché i dati della scena (punti, poligoni,....) devono essere organizzati in un certo modo altrimenti anche per renderizzare 1000 poligoni ci metteresti 10 minuti... e la "cosa" non sarebbe usufruibile! ....

Ti faccio un esempio, sapresti descrivermi questa riga di codice:

extern void (__stdcall *ShowSplashForm)(void);

2. Ammesso che conosci il C/C++ sarà inevitabile imparare qualcosa sulla gestione delle interfacce sia che intendi sviluppare su Win, sia su MAC, sia su .......... e quindi dovrai imparare il paradigma della Programmazione ad Eventi (che deriva comunque dal C++), quindi dovrai imparare almeno o il Borland C++ Builder 6 oppure il MS Visual C++, su MAC c'è l'XCode, su Linux c'è KDeveloper (mi pare :P ).

3. Dopo aver imparato queste "piccole" cose la scena lo vuoi preparare tu o usi i file di qualche altro sw? Allora se la prepari tu dovrai imparare l'uso delle OpenGL (universali) oppure le DirectX se sviluppi solo per Win. Se invece vuoi usare i file di altri sw preparati a sborsare fior fiori di migliaia di euro per i diritti sui formati (sto parlando di come sono fatti i file .max, .lwo, .3dm,......) tra la babele di formati l'unico facile da "leggere" e l'OBJ (per il quale posso delucidarti in modo egragio :P ) in quanto è TESTUALE !!!! Non ci credi? prova a trascinare un file .obj sul Blocco Note di Win!

3. Come sei messo con la geometria? Il calcolo delle luci speculari, ombre, delle rifrazioni, delle riflessioni, l'inquadratura stessa della telecamera richiede massiccio uso di moltiplicazioni tra matrici, matrici-vettore, vettore-vettore,.... e questo sempre che non vuoi usare la G.I.,.... Calcoli per il passaggio da uno spazio 3D ad uno 2D perché la bitmap generata è 2D!

4. Bhe per ora basta così ....ce ne di lavoro da fare per iniziare a sviluppare un renderizzatore raytrace!

Non scoraggiarti, si può fare .......chi ti scrive è un esempio anche se sono orientato più sul real-time! :P

:hello::hello:

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Non saprei... qui puoi trovare alcuni link...

Puoi anche dare un'occhiata ai motori opensource che si trovano in rete... basta una ricerca su google e hai da sbizzarrirti e scegliere quello da spulciarti il codice.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Ospite

Da quello che mi hanno detto Renderman e' piu' semplice di Mental Ray ad esempio e se pensi che e' il miglior motore di rendering esistente io ci farei un pensierino.

Cercati qualche book e sito su Renderman e poi su Amazon ho visto che si trovano veri e propri libri sull'argomento.

Poi fatti un giro qui che ci sono vari Guru del settore : www.renderglobal.org ..... Prova a chiedere a loro

Ciao,Andrea.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grazie a tutti per le risposte.

ora inizio a studiarmi per bene il c++ e le opengl.

grazie Macphistoper il link, molto interessante.

x TheShark volevo chiederti il fatto dei compilatori, posso usare solo quelli che hai citato? in particolare mi interessa per linux e windows.

3dlearner2 mi consigli allora di imparare renderman? magari studiando motori open source come aqsis che sono renderman-copliant(o come si dice?)?

grazie

user91

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
x TheShark volevo chiederti il fatto dei compilatori, posso usare solo quelli che hai citato? in particolare mi interessa per linux e windows.

Ciao.

In realtà puoi usare qualunque tipo di compilatore (free o pay). Per Linux conosco solo quello (KDeveloper), per Win i 2 citati sono il TOP presenti sul mercato ....un po' come V-Ray e Maxwell per esempio. Personalmente "conosco come le mie tasche" il C++Builder della Borland che si basa sul framework VCL ovvero l'antagonista dell'MFC. Ho usato sia MFC che VCL e in tutta franchezza ti posso dire che le VCL sono un capolavoro di ingegneria del software........ ed ora non riesco più a farne a meno :P

..... se poi vuoi usare Java sul web ci sono tanti compilatori che però non ho mai usati,.... la Borland fa JBuilder per questo linguaggio ed ovviamente usa la potenza del Java unita alla robustezza delle VCL riscirtte in Java.

:hello:

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Ospite

quote:

perchè dici che renderman è il miglior motore di render al mondo?

Chiedilo alla Pixar ;) .

A parte gli scherzi,questo e' cio' che mi hanno riferito i Guru del settore,soprattutto in fase di programmazione.

A parte i motori di randering proprietari a noi sconosciuti(anche se Renderman e' uno di quelli).

Ciao,Andrea.


Modificato da Ospite

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×