Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
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

Share this post


Link to post
Share on other sites

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:

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Guest

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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:

Share this post


Link to post
Share on other sites
Guest

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.


Edited by Guest

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...