Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-01-2007, 16:48   #1
Fumereo
Senior Member
 
L'Avatar di Fumereo
 
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
Normal Map in PS 2.0

Salve a tutti, volevo il parere di qualche mente piu' esperta nella programmazione dei pixel shader su un problema che sto cercando di affrontare diversi modi...

Lo scopo e' quello di dividere una nmap in piu' zone e poter gestire separatamente le intensita' di queste zone.

In pratica attraverso dei pesi (semplici valori float) sono in grado di aumentare o diminuire l'intensita' di applicazione della nmap in zone diverse.

Quindi se ho la nmap di un volto di una persona potro' decidere di agire indipendentemente sulle rughe della fronte piuttosto che su quelle del sopracciglio destro e via cosi'.

La divisione delle zone si gestisce attraverso l'alpha channel: In pratica la nmap e' una TGA 32bit. Il texture artist puo' disegnare diverse zone sul canale alpha e dotarle di una diversa opacità. A seconda del valore che ha l'alpha posso decidere nel pixel shader se applicare o no il bump in quel punto e di quanto.

Le limitazioni a questa tecnica sono il numero di zone gestibili. Io ho una 9800pro e posso gestire al massimo 64 operazioni aritmetiche nel ps.
Utilizzando dei banalissimi (ma piuttosto onerosi) IF ELSE per decidere se applicare o no la nmap in quel punto riesco al massimo a gestire 6 zone diverse.

Qualcuno magari si mettera' le mani nei capelli ma e' il primo ps che scrivo e non sono molto avvezzo di programmazione. Qualcuno per caso ha un idea migliore su come realizzare cio' che voglio?

a proposito: sto utilizzando linguaggio HLSL su rendermonkey
Fumereo è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2007, 11:49   #2
Fumereo
Senior Member
 
L'Avatar di Fumereo
 
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
Fumereo è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2007, 14:38   #3
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Hmmm quindi tu vuoi che quando l'alpha vale 0 la trasformazione in texture space non venga eseguita?
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2007, 18:03   #4
Fumereo
Senior Member
 
L'Avatar di Fumereo
 
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
nono!!

L'alpha lo uso solo per "disegnare" diverse zone sulla nmap.
Se l'alfa in una zona e' 0 potro' decidere se attivarci sopra il bump oppure no e di quanto.

Potendo al massimo gestire 6 "zone" ho separato i valori di alpha a 0, 20, 40, 60, 80 e 100 % di opacita'.

Con queste indicazioni il texture artist puo' decidere quali zone vanno processate con lo stesso valore di bump.

Se non e' ancora chiaro ditemi che provo a inserire delle immagini
Fumereo è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2007, 18:28   #5
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
beh si posta va
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2007, 19:01   #6
Fumereo
Senior Member
 
L'Avatar di Fumereo
 
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381


Allora...qua ho separato in due immagini il canale rgb e il canale alpha della normal map
Questo e' il canale RGB:
Questo e' il canale alpha:

Scusa la formattazione orrenda del post...

Comunque come puoi notare su ogni oggettino idiota (e' solo una mappa di test) che deve risaltare c'e' un diverso grado di opacita'.

Per esempio il "cono tronco" e' coperto da grado di opacita' 60%

In questo modo io che ho 6 comodissimi slider posso decidere di aumentare il bump del solo cono in questa maniera (il cubo ha di default una bump di un muro....in piu' come vedi appare il cono tronco)

Fumereo è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2007, 23:24   #7
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Non capisco niente di quello che stai facendo

Non capisco il nesso tra zone e alpha channel.
Quote:
Potendo al massimo gestire 6 "zone" ho separato i valori di alpha a 0, 20, 40, 60, 80 e 100 % di opacita'.
Ma tu non vuoi semplicemente dire quanto thick è la normal in quel punto? Non ti basta usare una bump map?
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2007, 23:27   #8
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
ah, FORSE ho capito, comunque tu riposta la spiegazione in modalità "scuola elementare" per favore
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2007, 15:37   #9
Fumereo
Senior Member
 
L'Avatar di Fumereo
 
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
okok...intanto grazie per l'interessamento

Immaginiamo di avere una superficie piatta alla quale applichiamo una normal map.

Su questa normal map abbiamo disegnato un rombo e un quadrato. distanti tra di loro (non sovrapposti).

Ora nel piu' classico degli shaders che gestisce una normal map io posso aumentare un peso per variare il grado di rilievo con il quale queste due figure appariranno sulla superficie piatta. se il valore e' 0 non c'e' rilievo se il valore e' 1 il rilievo e' massimo. (semplifichiamo per comodita' d'esempio)

Nel mio shader e' possibile invece usare due pesi. Con uno gestisco il rombo, con l'altro il quadrato. Quindi posso far apparire il rombo sulla superficie e non il quadrato e viceversa o tutti e due con pesi indipendenti tra loro.

Ripeto che il quadrato e il rombo sono sulla stessa normal map. Quindi lo shader deve poter dividere la normal map per agire in maniera diversa a seconda della "zona". La maniera, poco efficiente, che ho sviluppato per adesso e' disegnare sull'alpha channel diversi gradi di opacita'.

In corrispondenza del rombo l'opacita' e' 0% (trasparente) mentre in corrispondenza del quadrato l'opacita' e' del 100%.

Lo shader leggera' il valore dell'alpha.... (if mappa.alpha == 0) USA il pesoA, altrimenti usa il pesoB.

PesoA e pesoB sono i valori con cui decido se e di quanto bumpare.

E' vagamente piu' chiaro?
Fumereo è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2007, 16:59   #10
CICUS
Senior Member
 
L'Avatar di CICUS
 
Iscritto dal: May 2004
Città: Torino
Messaggi: 1715
scusa se mi intrometto...sono un programmatore ma non grafico

ma stai usando del codice c#?
CICUS è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2007, 18:41   #11
Fumereo
Senior Member
 
L'Avatar di Fumereo
 
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
Sto usando hlsl che e' molto simile al C
Fumereo è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2007, 19:37   #12
CICUS
Senior Member
 
L'Avatar di CICUS
 
Iscritto dal: May 2004
Città: Torino
Messaggi: 1715
mi era venuto in mente c# siccome anche li si possono usare le librerie directx
CICUS è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2007, 19:37   #13
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
usare più texture è improponibile? Io terrei ogni shape in una texture diversa onestamente...
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2007, 19:43   #14
Fumereo
Senior Member
 
L'Avatar di Fumereo
 
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
Quote:
Originariamente inviato da CICUS
mi era venuto in mente c# siccome anche li si possono usare le librerie directx
Si ma qua non sto usando librerie directX. Sto creando un piccolo programma che gira proprio sulla scheda video (shader). La scelta quindi e' o l'assembler o un linguaggio proprietario di nvidia (Cg) o Hlsl oppure Glsl(opensource)...e chi ne sa di piu' mi corregga se sbaglio
Fumereo è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2007, 19:51   #15
Fumereo
Senior Member
 
L'Avatar di Fumereo
 
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
Quote:
Originariamente inviato da Ufo13
usare più texture è improponibile? Io terrei ogni shape in una texture diversa onestamente...
Diventa improponibile ai fini di quello che sto cercando di realizzare....

Le applicazioni in seguito sarebbero molteplici....per esempio usando una stress map come "texture dei pesi" potrei andare a definire in tempo reale il bump di un modello in un determinato punto.

Ad esempio portando questo shader in maya potrei fare in modo di ottenere la variazione dinamica di bump in relazione alla distensione o alla contrazione poligonale del modello. Quindi se il mio modello strizza l'occhio appaiono delle rughe in corrispondenza delle zampe di gallina .....

Insomma potrebbero esserci degli sviluppi interessanti......
Fumereo è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2007, 20:06   #16
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Anche questa è una cosa che può benissimo essere fatta con qualche texture in più secondo me... Ogni texture ha associata una costante che dice la "profondità". Onestamente però non conosco il prezzo di un texture fetch rispetto a un IF-ELSe.. Io credo sia minore ma vedi tu.

IF e ELSE sarebbe meglio non usarli ma dipende sempre da cosa ti serve. Comunque ora sto un po' scoppiato, magari quando mi riprendo vedo di pensare a un'altra soluzione
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
La previsione di CATL: barche elettriche...
Stangata in arrivo: PC e notebook coster...
Lian Li si è inventata il primo a...
Amazon in raptus sconti: ogni 24 ore nov...
44 idee regalo sotto i 50€: con le offer...
Super Sconti Amazon Haul: ribassi fino a...
Cloudflare ha bloccato 416 miliardi di r...
Prezzo mai visto: POCO F7 12/256GB in su...
Svuotano tutto: super sconto su due scop...
Warner-Netflix, l'accordo riaccende le s...
6 robot al prezzo del Black Friday e non...
Russia, i cani randagi diventano hotspot...
Ogni giorno sconti nuovi: oggi iPhone 17...
Non solo Mac: anche alcuni futuri iPhone...
La costruzione del telescopio spaziale N...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v