[lnkForumImage]
Download FREE Software.

Confronta i prezzi di migliaia di prodotti.
News Forum Italiano
 Home | Login | Registrati | Ricerca 


 

Forums >

it.comp.giochi.sviluppo

Pareri su nuovo tutorial

Vincent

17/12/2008 22:05:01

Gradirei dei pareri su questo nuovo tutorial da me pubblicato

http://xvincentx.netsons.org/programBlog/wp-content/fu...

Segnalatemi imprecisioni, fesserie o concetti errati e qualsiasi cosa non vi
vada a genio.
Cercando, se possibile, di evitare flame del tipo "Micro$oft"
Grazie mille!


8 Risposte

Davide Pasca

20/12/2008 15:20:18

0

On Dec 18, 7:05 am, "Vincent" <darkfren...@yahoo.it> wrote:
> Gradirei dei pareri su questo nuovo tutorial da me pubblicato
>
> http://xvincentx.netsons.org/programBlog/wp-content/fu...
>
> Segnalatemi imprecisioni, fesserie o concetti errati e qualsiasi cosa non vi
> vada a genio.
> Cercando, se possibile, di evitare flame del tipo "Micro$oft"
> Grazie mille!

Complimenti per l'impegno.. fare un tutorial del genere immagino non
sia una lavoro da poco.
Ho letto al volo e ho alcuni appunti:

- Il file risulta encriptato e non sono riuscito ne a modificarlo ne a
stamparlo (provato con OS X)
-- Nel mio caso avrei voluto salvare delle note ma non ho potuto..
altri magari vorrebbero stamparlo
- Si menziona Map e Unmap ma non sembra siano poi necessarie anche
perche' la texture viene creata come "immutable"
- Dopo la prima immagine c'e' scritto "L’idea dello snell" ..presumo
un errore di scrittura ? (shell)
- MakeFurMap() e' dichiarata come __fastcall ..notazione relativamente
poco utile (specie per una funzione relativamente lenta) e non
necessaria per il tutorial
- srand() in MakeFurMap() prende un seed diverso solo ogni 10
secondi ? (assumendo che GetTickCount() ritorni millisecondi)
-- Il casting in "srand((UINT)GetTickCount() * 0.0001)" sembra errato,
perche' finisce col passare un "double" a srand()
- L'accesso alle variabili dello shader tipo GetVariableByIndex(9) e
poco comprensibile e prono ad errori, sarebbe meglio GetVariableByName
("Texture")
- Mancano le referenze al materiale, documentazione che hai usato.
Importante per dare merito dove e' dovuto e spunti/riferimenti a chi
vorrebbe andare oltre al tutorial

Buon lavoro 8)
Davide

Vincent

20/12/2008 16:37:36

0

Dunque

A) Si, il file è criptato da Adobe...ho visto molte volte rubarmi le
immagini e i testi sena adeguate referenze (un pò mi sta bene, visto che lo
faccio anche io)
B) Vero, Map e Unmap non servono, inizialmente la texture non era immutable
C) Shell, verissimo
D) __fastcall non serve, giusto
ERiguarderò il problema di srand
E) L'accesso alle variabili. Si è vero io uso gli indici poichè per nome e
semantica proprio non funziona. La classe ID3D10Effect ha dei bug (o sono
prorpio un incapace io)


Davide Pasca

20/12/2008 17:02:14

0

On Dec 21, 1:37 am, "Vincent" <darkfren...@yahoo.it> wrote:
> Dunque
>
> A) Si, il file è criptato da Adobe...ho visto molte volte rubarmi le
> immagini e i testi sena adeguate referenze (un pò mi sta bene, visto che lo
> faccio anche io)

Tutto sommato se qualcuno vuole prendere le immagini puo' farlo
facendo uno screen shot, e il testo si puo' comunque selezionare e
copiare.
Secondo me se dai tu il buon esempio, magari chi copia la prossima
volta si curera' di dare le giuste referenze.. ;)

> B) Vero, Map e Unmap non servono, inizialmente la texture non era immutable

Aggiungo che comunque la texture si puo' cambiare senza map/unmap.
Basta usarla come "default" e non "immutable" e poi aggiornare con
UpdateSubresource() ( http://msdn.microsoft.com/en-us/librar...(VS.85).aspx
).

> ERiguarderò il problema di srand

Di per se non e' un problema.. ma se l'idea e' quella di cambiare la
texture di frequente.. (mentre per il cast e' piu' una questione di
chiarezza)

> E) L'accesso alle variabili. Si è vero io uso gli indici poichè per nome e
> semantica proprio non funziona. La classe ID3D10Effect ha dei bug (o sono
> prorpio un incapace io)

Dovrebbe funzionare. Io uso accesso per nome senza problemi.. e poi
gli esempi stessi del DX SDK accedono per nome. Quindi deve trattarsi
di qualcos'altro. Magari dai flags usati per creare l'effetto.. non
saprei 8)

Ultima cosa, a meno che non ci stia lavorando con delle classi e con
ereditarieta', basta un semplice (float) piuttosto che
static_cast<float> per castare.. ma e' una questione di preferenze.

baubau
Davide

mrb

21/12/2008 10:22:43

0

Vincent wrote:
> Gradirei dei pareri su questo nuovo tutorial da me pubblicato
>
> http://xvincentx.netsons.org/programBlog/wp-content/fu...
>
> Segnalatemi imprecisioni, fesserie o concetti errati e qualsiasi cosa
> non vi
> vada a genio.
> Cercando, se possibile, di evitare flame del tipo "Micro$oft"
> Grazie mille!
>
>

Giustifica il testo del tutorial (tranne gli esempi di codice,
ovviamente), la leggibilità sarà di gran lunga migliore.

Vincent

22/12/2008 11:27:26

0

Non vorrei dire una fesseria, ma UpdateSubresource per le texture è
altamente sconsigliato...


>
> A) Si, il file è criptato da Adobe...ho visto molte volte rubarmi le
> immagini e i testi sena adeguate referenze (un pò mi sta bene, visto che
> lo
> faccio anche io)

Tutto sommato se qualcuno vuole prendere le immagini puo' farlo
facendo uno screen shot, e il testo si puo' comunque selezionare e
copiare.
Secondo me se dai tu il buon esempio, magari chi copia la prossima
volta si curera' di dare le giuste referenze.. ;)

> B) Vero, Map e Unmap non servono, inizialmente la texture non era
> immutable

Aggiungo che comunque la texture si puo' cambiare senza map/unmap.
Basta usarla come "default" e non "immutable" e poi aggiornare con
UpdateSubresource() (
http://msdn.microsoft.com/en-us/librar...(VS.85).aspx
).

> ERiguarderò il problema di srand

Di per se non e' un problema.. ma se l'idea e' quella di cambiare la
texture di frequente.. (mentre per il cast e' piu' una questione di
chiarezza)

> E) L'accesso alle variabili. Si è vero io uso gli indici poichè per nome e
> semantica proprio non funziona. La classe ID3D10Effect ha dei bug (o sono
> prorpio un incapace io)

Dovrebbe funzionare. Io uso accesso per nome senza problemi.. e poi
gli esempi stessi del DX SDK accedono per nome. Quindi deve trattarsi
di qualcos'altro. Magari dai flags usati per creare l'effetto.. non
saprei 8)

Ultima cosa, a meno che non ci stia lavorando con delle classi e con
ereditarieta', basta un semplice (float) piuttosto che
static_cast<float> per castare.. ma e' una questione di preferenze.

baubau
Davide


Davide Pasca

24/12/2008 04:35:44

0

On Dec 22, 8:27 pm, "Vincent" <darkfren...@yahoo.it> wrote:
> Non vorrei dire una fesseria, ma UpdateSubresource per le texture è
> altamente sconsigliato...

Dove e' sconsigliato ?
Dalle mie prove invece e' risultato il contrario (con una 8800). La
logica e' che la UpdateSubresource() la possibilita' di schedulare una
update asincrona senza potenzialmente mandare in stallo il rendering
che potrebbe fermarsi nel tempo che l'applicazione usa la memoria..
ovvero tra la Map e la Unmap.

Anche se teoria, facendo una map/unmap con accesso solo write-discard
il driver potrebbe fare la stessa cosa. Ma da quanto avevo sentito, le
risorse create per accesso a CPU verrebbero automaticamente messe in
memoria di sistema o comunque gestite diversamente dal driver.. cosa
che sarebbe implicita dal driver di base di Windows Vista, WDDM
( http://en.wikipedia.org/wiki/Windows_Display_Driver_Model#Virtualized_vi...
).

bau
Davide

P.S. Occhio a come quoti.. il mio messaggio sotto sembra come se lo
avessi scritto tu 8)

Vincent

24/12/2008 16:52:50

0

Davide Pasca

24/12/2008 18:06:14

0

On Dec 25, 1:52 am, "Vincent" <darkfren...@yahoo.it> wrote:
> Nella slide del GDC2008 dedicata a D3D10http://developer.download.nvidia.com/presentations/2008/GDC......
>
> Pagina 14

Interessante. Notare che comunque l'alternativa proposta e' di creare
un ring buffer di "staging" (solo CPU) textures per ridurre eventuali
stalli e poi usare la CopyResource() o CopySubresourceRegion()

Quindi tra una UpdateSubresource() ed una semplice Map/Unmap credo la
prima sia ancora piu' efficiente, ma Map/Unmap su texture staging
seguita da una copia e' apparentemente piu' efficiente. ..bisognera'
provare.
Grazie della dritta 8)

bauu
Davide