|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Member
Iscritto dal: Jan 2003
Messaggi: 68
|
Quote:
E' incredibile quanto sei intelligente e sapiente ! Ne ho sentite molte ma così mai !! ![]() 0 ed 1 non esistono, servono solo per rappresentare lo stato di tensione si e no. ![]() ".I compilatori sono in linguaggio macchina.." TUTTO è in linguaggio macchina ![]() "... Un programma in linguaggio macchina è una sequenza di 0 e 1 .." Quanto hai studiato per dire questo ? Il linguaggio macchina NON è una sequenza di 0 e 1 !!!!! Il LM è ad un livello sopra agli 0 e 1 !!!! 0 e 1 è ad un livello sopra di Corrente SI', corrente NO. Ad ogni istruzione, tipo MOV, CALL, REPNZ etc.., corrisponde un microcodice stampato nel silicio, quello è e quello rimane. Lascia perdere ![]() |
|
![]() |
![]() |
![]() |
#22 | ||
Senior Member
Iscritto dal: May 2002
Messaggi: 830
|
Re: Vertex Shader (&pixel)
Quote:
![]() è ovvio che uso termini riassuntivi visto quello che dovrebbe essere il succo del discorso... mi sembra che alzi solo polvere perchè citi argomenti che poco c'entrano con il discorso principale... :o ![]() ![]() ripeto nuovamente: con il T&L/FF i programmatori possono solo richiamare funzioni parametrizzabili (NB: non intendo funzioni matematiche lol...). Queste funzioni per essere eseguite hanno una diretta corrispondente fisica... cribbio!!!!! il T&L/FF ha funzioni che eseguono operazioni ,come ho già detto più volte, hard-coded. I programmatori non hanno a disposizione le singole istruzioni perchè difatti l'architettura hw delle schede o meglio dei chip T&L/FF non consente l'astrazione di queste istruzioni... il loro utilizzo o processo diretto... difatto queste istruzioni non ci sono, ma come già detto all'n^ potenza i programmatori hanno un set predeterminato di funzioni disponibili e richiamabili nei loro programmi. Con il 'discorso shader' i programmatori 'le funzioni' se le devono programmare ,scrivendo ovviamente codice, utilizzando le istruzioni facenti parti del set shaders. tu stesso facendo il professore dici: Quote:
![]() ![]() |
||
![]() |
![]() |
![]() |
#23 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#24 | |
Senior Member
Iscritto dal: May 2002
Messaggi: 830
|
Quote:
![]() ![]() ![]() Forse non è il caso di essere sottiliosi su certi termini... sono cmq nel linguaggio comune... un programmatore che dice: io programmo in C++ non dice mica un'eresia... ![]() Quello che dici tu in ciò che ho quotato, ovviamente esatto, oltre alla CPU si applica anche alla GPU programmabile... voglio dire che con gli shaders si programma con il set di istruzioni della GPU per il quale c'è hard-coded(cmq set SIMD per gli shaders). (poi ok, c'è il discorso CG di nVidia e HLSL di Microsoft) Con il vecchio T&L/FF invece l'hard-coded era/è a livello di funzioni... quelle che i programmatori avevano a sisposizione come set predefinito. ![]() |
|
![]() |
![]() |
![]() |
#25 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Re: Vertex Shader (&pixel)
Quote:
Continui a parlare di FF paragonandole, metaforicamente, a bottoni che vengono spinti in una sorta di meccanismo di azione/reazione, differenziandole dagli shader (che quindi non sarebbero soggetti ad un tale tipo di meccanismo). Peccato che non esista un circuito "intelligente", ma si basino tutti sul meccanismo input/output (ti sembrerà strano ma anche gli studi sull'IA si scontrano con questo principio limitante e persino il cervello umano non sfugge a questa legge). I programmi non sono altro che istruzioni e rappresentano funzioni matematiche, in forma più o meno complessa, tradotte in un linguaggio tale da poter essere compresi da un circuito. Gli shader non fanno eccezione. Ovviamente, a seconda dell'output che vogliamo ottenere dovremo scrivere l'input in un determinato modo e disegnare il circuito in modo tale che possa soddisfare le aspettative. Il funzionamento di un chip dipende in primo luogo dalla sua struttura fisica, in secondo luogo da come questa struttura è fatta funzionare (HDL). I componenti del circuito fisico si basano su principi ben determinati (un transistor un mosfet, una resistenza un codensatore, un diodo, non funzionano diversamente se il programma è una funzione trascendente o lineare; può accadere che un determinato circuito possa funzionare solo con la seconda e non con la prima, ma difficilmente si progetta un circuito in grado di funzionare solo con funzioni complicate). Vorrei invitarti a fare degli esempi di FF hard coded (e poi a contare quanti ne vengono fuori e, di conseguenza, quanti circuiti servono per far funzionare un chip). Ti faccio presente che, col tuo esempio, che prescinde dall'uso di funzioni matematiche, una semplice operazione di scaling equivale a infinite istruzioni (una per ogni distanza reciproca tra i vertici di ogni singolo triangolo) |
|
![]() |
![]() |
![]() |
#26 |
Bannato
Iscritto dal: Apr 2002
Città: Roma
Messaggi: 7014
|
venghino signori e signori a capire finalmente cosa sono in realta i pixel e vertex shader! :o
![]() ma perchè fate tutto sto casino? solo per dire che nvidia è meglio di ati? ![]() |
![]() |
![]() |
![]() |
#27 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#28 | |
Bannato
Iscritto dal: Apr 2002
Città: Roma
Messaggi: 7014
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#29 | |
Senior Member
Iscritto dal: Jun 2002
Messaggi: 9591
|
Quote:
![]()
__________________
Via EH1/S3 Chrome 5400E + S3 Chrome 430GT + Via Quadcore @1,46Ghz all your base are belong to us |
|
![]() |
![]() |
![]() |
#30 | |
Bannato
Iscritto dal: Apr 2002
Città: Roma
Messaggi: 7014
|
Quote:
LO VOLETE CAPIRE CHE è INUTILE PARLARE DI STE COSE? ++ o -- è uguale! TANTO NN LE USERANNO MAI! perchè usare delle direct x che verranno usate da poche schede? tanto vale basarsi sugli standard delle direct x 9! ![]() scusate lo sfogo ![]() |
|
![]() |
![]() |
![]() |
#31 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Quote:
Ho cercato di farmi spiegare come, secondo lui, l'NV30 riesca a funzionare con applicazioni DX7 (visto che sostiene che un'architettura shader oriented è incompatibile con le FF); mi sarebbe piaciuto anche sapere come fanno tutte le architetture vecchie (non tipo NV30) a funzionare con gli shader (mi pare che l'R300 se la cavi fin troppo bene con PS e VS, pur non avendo (?) un'architettura ad hoc). Ho tentato di farmi spiegare cosa siano queste FF (che non sono funzioni matematiche ma, come ha detto qualcuno, stampate ![]() ![]() ![]() Infine sei arrivato tu e hai chiesto di cosa stessimo parlando, affermando, inoltre che erano discorsi inutili perchè tanto le estensione DX+++++ non saranno mai usate (e hai ragione). Insomma ti sembra che ti si possano dare spiegazioni? Sono stato chiaro? ![]() |
|
![]() |
![]() |
![]() |
#32 |
Senior Member
Iscritto dal: Nov 1999
Messaggi: 595
|
kirk tempo fa disse che le le FF delle dx7 erano gestite come un vertex program
__________________
Ma la triste realtà a cui ci dobbiamo rassegnare è che nel grande disegno delle cose anche l'opera piu mediocre ha molta piu anima del nostro giudizio che la definisce tale (RATATOUILLE) |
![]() |
![]() |
![]() |
#33 |
Senior Member
Iscritto dal: May 2002
Messaggi: 830
|
allora, brevemente l'argomento è questo:
fisicamente T&L/FF e shaders non sono direttamente compatibili e nel NV20 ne era stato incluso il core per compatibilità. Per i programmatori si tratta di scegliere se programmare in FF o sfruttando gli shader. Programmando con le vecchie pipeline (FF) si tratta di richiamare funzioni hard-coded(codificate nel silicio). Schede grafiche con chip T&L/FF(Fixed Function) 'danno a disposizione' degli sviluppatori un set fisso di funzioni parametrizzabili e richiamabili per ottenere "l'accellerazione" di appunto Trasform e Lighting... cioè operazioni ai vertici. Ripetendo queste operazioni ai vertici sono fisse cioè tramite una funzione si può richiamare un tipo di operazione. Con una GPU programmabile e parliamo di shaders, i programmatori hanno a disposizione un linguaggio di programmazione o meglio un set di istruzioni (SIMD) tramite le quali comporre la funzione che gli serve. (Lo stesso discorso vale per il multitexturing sostituito dal pixel shaders) Le 2 cose non sono direttamente compatibili e cioè a differenza di quanto cerchi di sostenere yossarian gli shader non sono un'estensione compatibile delle FF. Secondo yossarian gli shader sono le FF + altre funzioni... questo non è vero poichè programmando gli shader non si possono richiamare anche le funzioni T&L. Un programmatore decide se programmare a mezzo di FF o shader(o in entrambi i modi andando a fare un test sull'hw in modo che se non c'è GPU-programmabile venga utilizzato il T&L/FF). Il codice in questo caso è diverso e non compatibile. La programmazione FF è caraterizzata dal richiamo di funzioni o macrofunzioni preimpostate... e difatti si programma il gioco ma non la funzione che appunto esiste già e la si può solo richiamare. Con gli shader invece anche la funzione va programata poichè appunto esiste una GPU programmabile che da a disposizione del programmatore un set di istruzioni con il quale lo stesso può comporre dei programmi(o funzioni che dir si voglia...) con i quali 'processare' i vertici (o i pixel/texel nel Pixel shader). P.S. ovviamente penso basti fare una qualsiasi ricerca su internet sull'argomento per vedere le differenze tra FF e Shaders. |
![]() |
![]() |
![]() |
#34 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Quote:
E' quello che stavo cercando di spiegare a DoomIII. Un chip in grado di operare con funzioni più complicate, ossia dotato di una maggior flessibilità in fatto di programmazione, è in grado, altresì, di gestire anche le funzioni semplici, come quelle lineari, al pari delle altre. Ovviamente sarà diverso l'approccio, poichè utilizzerà algoritmi che siano compatibili anche con le funzioni non lineari. In parole povere, esistono tanti modi per rappresentare una retta o definire un punto nello spazio: un chip in grado di operare solo con le FF lavorerà esclusivamente con funzioni di primo grado (e neanche con tutti i tipi) e solo con quelle e utilizzerà, per rappresentare una retta, la sua equazione geometrica (ovviamente traducendo il funzionamento di un chip in un linguaggio più comprensibile a noi), lavorando con parametri rappresentati dai coefficienti dell'equazione della stessa retta e dall'eventuale termine noto: Ad un livello superiore, possiamo pensare a rappresentare una retta mediante, ad esempio, la formula di Taylor (tanto per dirne una), fermandosi alle derivate del primo ordine. Ovviamente nel caso della retta si riotterrà l'equazione stessa della retta, così com'è; il vantaggio è che attraverso lo stesso procedimento si possono ottenere svariate altre funzioni non lineari, con approssimazione tanto migliore quanto più si riduce il resto (o errore). Quindi, all'atto pratico, quelle che erano considerate FF sono di fatto un vertex program (solo più semplice). E' un po' come il rapporto tra spazio complesso e spazio reale. Noi siamo abituati a rappresentare il secondo in un determinato modo (e a considerarlo in un determinato modo), semplicemente perchè facciamo un'operazione di estrapolazione dallo spazio complesso. Nel momento in cui operiamo con lo spazio complesso quella che cambia è semplicemente la rappresentazione dello spazio reale (che non diventa un'altra cosa, addirittura incompatibile con quanto è in un riferimento diverso). |
|
![]() |
![]() |
![]() |
#35 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Quote:
Ci sono vari modi di arrivare allo stesso risultato. Negli attuali chip non esiste un circuito FF. I programmatori possono programmare come vogliono, poichè tra SW e chip esistono altre interfacce (HDL e drivers, oltre alle stesse DX o OpenGL che dir si voglia). Puoi fare tutte le ricerche che vuoi e non troverai da nessuna parte che sull'R300 ci siano pipelines FF (così come non ci sono sullNV25). Poi ti sarei grato se rispondessi a qualcuna delle domande che ti si fanno, visto che mi accusi di glissare le tue. Ad esempio, specifica la natura delle macrofunzioni di cui parli (visto che non si tratta di funzioni matematiche). Hai sostenuto che l'architettura dell'NV30 è superiore e più avanzata; ti ho chiesto perchè allora è uscito overclockato di fabbrica e non hai risposto. E potrei andare avanti ancora per molto ma non ne vale la pena. Ti ho già detto che se si andasse sul piano tecnico non ci capiresti molto (l'hai trovato divertente ma non era una battuta). Puoi tranquillamente restare con le tue convinzioni, tanto sinceramente la cosa non mi interessa e questa discussione, oltre che sterile, sta diventando noiosa. Ciao |
|
![]() |
![]() |
![]() |
#36 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Quote:
Accelerazione si scrive con una l (te lo segnalo perchè è un errore tipico di molti di coloro che non hanno fatto studi tecnici) I PS non hanno sostituito il multitexturing che vuol semplicemente dire "applicazione di più textures su un singolo pixel", e non specifica la natura delle textures in questione. Con questo, per quanto mi riguarda, ho esaurito l'argomento, anche perchè, come ho già detto, questa discussione sta diventando troppo ripetitiva e di conseguenza noiosa. Con questo ti saluto ![]() |
|
![]() |
![]() |
![]() |
#37 |
Senior Member
Iscritto dal: Mar 2001
Città: Genova
Messaggi: 2768
|
secondo me da quello che ho capito.. e vedendo la cosa da un altro punto di vista... mi meraviglierei che nvidia pensasse a fare un chip così avanzato da poterlo paragonare "il fururo della grafica" quando poi è stata sempre nvidia a sfornare chipset (e driver
![]() anche ati ha sempre sviluppato tecnologie nuove come il keyframe interpolation ecc.. all'epoca dell'Radeon256 che competeva con il GTS che all'epoca aveva la peggior qualità 2d (ATI e suoi colori ![]() a questo mi punto mi chiedo.. perchè ,visto il modo di fare di nvidia, dovremmo credere che abbia fatto un chip così tecnologicamente avanzato da non essere apprezzato per quello che è attualmente.. e poi io penso che la tecnologia e una cosa che serve al presente e non ad un funturo che verrà.... ciao ![]()
__________________
ALI: Enermax Platimax 750W * MOBO: Gigabyte GA-Z97-D3H * CPU: Intel Core i7 4970K * RAM: DDR3 8GB 1600Mhz CL7 Corsair Vengeance * HD: SSD Crucial MX100 256Gb * GPU: Gigabyte NVIDIA GeForce GTX 970G1 Gaming * OS: Windows 10 TP |
![]() |
![]() |
![]() |
#38 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Quote:
Però come hai giustamente detto e come ha sostenuto anche qualcun altro (non ricordo chi, purtroppo), l'NV30, se da un lato propone delle interessanti novità, almeno nelle intenzioni, dall'altro denuncia vizi dovuti a scelte conservative (tipiche, quando si parla di architettura HW, di nVIDIA) e cioè le 4 pipelines e il bus a 128 bit. La tecnologia deve servire all'oggi, con uno sguardo al futuro e, da questo punto di vista, l'NV30 non è la rivoluzione che hanno voluto far credere (ma i primi a non crederci sono stati proprio quelli di nVIDIA, come testimoniano tutta una serie di scelte quantomeno discutibili: dall'overclock di fabbrica ai drivers che peggioravano la qualità migliorando il framerate, all'abbandono definitivo, con l'NV35, almeno del bus a 128 bit). Inoltre, come ha detto Hanamici, non solo le estensioni DX+++++ non saranno mai usate, ma queste attuali schede video, pur essendo sulla carta full DX9, avrebbero seri problemi a far girare fluidamente un'applicazione realmente DX9 (magari con l'applicazione di 16 textures per pixel p.s.p.); e questo vale per l'NV30, per l'NV35, per l'R300 e per l'R350, senza distinzione |
|
![]() |
![]() |
![]() |
#39 |
Senior Member
Iscritto dal: May 2002
Messaggi: 830
|
no, è sbagliato quanto yossarian continua testardamente ad insinuare.
Funzioni matematiche semplici... complicate e bla bla bla ecc... ecc... non c'entrano niente... queste sono corrispondenti di istruzioni... istruzioni disponibili ai programmatori tramite gli shader , o meglio il set di istruzioni della GPU... con queste istruzioni si scrivono programmi per eseguire FUNZIONI o Programmi o algoritimi o chiamali come vuoi che sono tutti in questo caso sinonimi ma non confondiamoli ignorantemente con le funzioni matematiche. (NB: pensavo tu scherzassi e lo facessi apposta e confondere le funzioni matematiche con quelle che sono funzioni di un programma... invece mi sa che fai confusione d'avvero) Allora diciamo che con le FF si hanno a disposizione dei comandi che eseguono degli algoritmi FISSI e preimpostati per i quali ci sono dei diretti circuiti che li eseguono... tanto che i programmatori non posson fare altro che richiamare questi algoritmi con l'apposito comando. (in realtà per un programmatore si tratta appunto di richiamare una funzione... ma visto che il caro amico fa confusione... ![]() ![]() Con gli shader si ha a disposizione un set di istruzioni con le quali programmare l'algoritmo che serve o si vuole realizzare. ES: il lighting è stato sfruttato poco o niente proprio per questo motivo... trattandosi di FF le operazioni erano fisse... e spesso non soddisfacevano gli sviluppatori poichè non erano corrispondenti all'effetto che volevano realizzare... quindi non gli restava altro ,se volevano ottenere l'effetto, che scrivere una funzione... ehhh, una sequenza di istruzioni per eseguire un'operazione, da far eseguire ovviamente alla CPU (con ovvi cali di performance). Con gli shader invece possono scrivere codice per ottenere l'effetto che vogliono via GPU. P.S. Vi ricordo infatti che nel NV20 oltre agli shader c'era anche l'unita hw T&L del NV15 inclusa proprio per compatibilità. |
![]() |
![]() |
![]() |
#40 | |
Senior Member
Iscritto dal: Mar 2001
Messaggi: 5390
|
Quote:
Quando in un linguaggio strutturato chiami la funzione (di programmazione) cos(x), o SQR(X), di cosa credi si tratti? Chiamale funzioni preimpostate ma ti assicuro che lo stesso calcolo si può fare in tanti modi diversi, e sempre di funzioni matematiche si tratta. Ora le FF fanno riferimenti a vertici e triangoli (sai perchè si sono scelti i triangoli e non, ad esmpio, gli esagoni e i pentagoni regolari come sui palloni da calcio?); vuoi che non siano funzioni matematiche? Comunque ti ringrazio per avermi chiarito determinati concetti. Pensavo di avere una certa familiarità con essi, sai com'è, dato anche il lavoro che facevo fino a un po' di mesi fa. Ma evidentemente mi sbagliavo, si vede che ci avevo sempre capito poco ![]() ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:10.