PDA

View Full Version : direct3d & openGL. Da dove inizio?


giova22
27-07-2008, 14:14
CIao

Conosco già assembler e c++. Ora vorrei creare programmi con parti in 3d (nulla di troppo difficile). Purtroppo non so da dove partire.

Sapete dove trovare guide/tutorial esaustivi, in italiano o anche in inglese?

Sapete anche di libri sull'argomento?

stdecden
27-07-2008, 17:42
Prova da qui (http://www.directxtutorial.com/Tutorial9/tutorials.aspx)

Comunque per directx intendi la versione 9, vero?

javaboy
27-07-2008, 17:45
Per quanto riguarda opengl:

Per iniziare ti consiglio:
http://nehe.gamedev.net/

Mentre questo è il sito ufficiale:
http://www.opengl.org/

Per quanto riguarda i libri ti consiglio:
OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL(R), Version 2.1 (6th Edition) (OpenGL) (Paperback)
by OpenGL Architecture Review Board (Author), Dave Shreiner (Author), Mason Woo (Author), Jackie Neider (Author), Tom Davis (Author)

giova22
27-07-2008, 18:57
grazie mille ad entrambi. Inizio subito a darci un occhiata

ricasir
29-09-2008, 12:42
mi attacco a questa discussione per chiedere un consiglio:

sto iniziando anche io a "programmare" utilizzando l'ambiente DirectX
per iniziare ho sviluppato un applicazione per "navigare" in una scena 3d creata con 3d studio max e poi converita in formato X

la scena al momento è praticamnete vuota ci sono solo 3 cubi senza texture

nonostate questo ho un problema di "Frame al secondo" ... più di 60 non riesco a fare. l'applicazione è stata fatta in Visual Basic DotNet

non capisco dove sia il problema i frame devono per forza essere molti di più
secondo voi è un problema di linguaggio che non è adatto a questo dipo di elaborazione ? un problema di parametre di compilazione dell' exe ?

che linguaggio dovrei usare per avere maggiore velocità di esecuzione ?? c++ ? c# ??
ci sono differenze tra c++ e il c++ dentro al visual studio 2008 ??


grazie

IceCoder
29-09-2008, 13:10
mi attacco a questa discussione per chiedere un consiglio:

sto iniziando anche io a "programmare" utilizzando l'ambiente DirectX
per iniziare ho sviluppato un applicazione per "navigare" in una scena 3d creata con 3d studio max e poi converita in formato X

la scena al momento è praticamnete vuota ci sono solo 3 cubi senza texture

nonostate questo ho un problema di "Frame al secondo" ... più di 60 non riesco a fare. l'applicazione è stata fatta in Visual Basic DotNet

non capisco dove sia il problema i frame devono per forza essere molti di più
secondo voi è un problema di linguaggio che non è adatto a questo dipo di elaborazione ? un problema di parametre di compilazione dell' exe ?

che linguaggio dovrei usare per avere maggiore velocità di esecuzione ?? c++ ? c# ??
ci sono differenze tra c++ e il c++ dentro al visual studio 2008 ??


grazie

Personalmente preferisco OpenGL su C++, per quanto mi riguarda è il massimo.

ci sono differenze tra c++ e il c++ dentro al visual studio 2008 ??

questa non l'ho capita..

71104
29-09-2008, 17:23
che linguaggio dovrei usare per avere maggiore velocità di esecuzione ?? c++ ? c# ?? boh? è una questione ancestrale. il CLR è molto performante, è stato stimato (se ricordo bene) che il codice managed nel caso peggiore* ha solo un 20% in meno di performance rispetto al codice nativo, ed inoltre considera che comunque quel -20% a te non interessa perché il lavoro pesante viene caricato sulla GPU, non sulla CPU; inoltre scegliendo l'ambiente managed avresti molti vantaggi nello sviluppo (specialmente se sei all'inizio) grazie alla semplicità del linguaggio (parlo di C#, lasciamo perdere Visual Basic). come colpo finale, Microsoft afferma che DirectX è più efficiente da usare in ambiente managed che in ambiente nativo perché nel primo manca lo strato di interoperabilità COM per il quale devi invece necessariamente passare nel secondo caso.

bada bene, non sono un esperto del settore e quindi invece il tuo specifico programma, una volta realizzato, potrebbe rivelarsi più efficiente nella versiona nativa; ma in tal caso ti consiglierei ugualmente C# per la maggiore semplicità e produttività.

*specifico nel caso peggiore, perché nel caso migliore un programma scritto in C# può tranquillamente superare un programma nativo in velocità. la cosa si verifica quando l'algoritmo che costituisce il programma deve deallocare frequentemente: in ambiente nativo devi deallocare immediatamente ogni volta, pena il leak, mentre in ambiente managed viene tutto "garbage collected", e la memoria "garbage collected" viene liberata tutta assieme quando il programma non sta facendo nient'altro di utile, quindi senza togliere tempo prezioso all'esecuzione dell'algoritmo.


ci sono differenze tra c++ e il c++ dentro al visual studio 2008 ?? il compilatore C++ della Microsoft è diventato molto aderente alle specifiche, sicuramente uno dei migliori; puoi tranquillamente programmare in C++ standard dentro Visual Studio 2008, le uniche differenze con lo standard dovrebbero essere particolarità sintattiche talmente specifiche che penso che non te ne andrai a preoccupare mai (anzi so addrittura di certe particolarissime features del C++ che non sono implementate da nessun compilatore al mondo :D).

banryu79
29-09-2008, 17:30
che penso che non te ne andrai a preoccupare mai (anzi so addrittura di certe particolarissime features del C++ che non sono implementate da nessun compilatore al mondo :D).
Tipo? Sono curiosissimo! :D

DanieleC88
29-09-2008, 22:57
Per iniziare ti consiglio:
http://nehe.gamedev.net/
Concordo pienamente. Gran sito quello. :)

71104
01-10-2008, 09:25
Tipo? Sono curiosissimo! :D c'è una storia che non finisce mai sulla keyword export, che servirebbe a separare l'implementazione dalla dichiarazione dei templates (cosa che si fa normalmente con le classi, ma è troppo difficile da implementare nel compilatore per i templates e perdipiù non serve a niente). esiste un solo compilatore al mondo che implementa export, il Comeau (e hanno pure una mezza intenzione di toglierla :D), ma so di altre features che non sono implementate da nessuno, solo che non me le ricordo :cry:
ne avevo letto un sacco di tempo fa su Usenet, probabilmente su it.comp.lang.*