játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5440
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2185
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] > 2 < [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [22]
syam - Törzstag | 1491 hsz       Online status #202895   2014.05.11 15:10 GMT+1 óra  
Ez pedig interpoláció okozatnak tűnik.
Próbáld meg nearestre állítani a min és mag filtert. Ha akkor eltűnik akkor nagy eséllyel interpoláció a gond.
alias aalberik
   
peti634 - Tag | 148 hsz       Online status #202894   2014.05.11 13:30 GMT+1 óra  
igen-igen.
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
De szerintem itt ez nem számít, mivel az adott textúra 2 pont között dönt rosszul?
Ennek akkor lenne értelme ha csak a textúra szélénél lenne gond, jól gondolom?
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
syam - Törzstag | 1491 hsz       Online status #202893   2014.05.11 13:20 GMT+1 óra  
Texture wrap clamp to edgere van allitva?
alias aalberik
   
peti634 - Tag | 148 hsz       Online status #202892   2014.05.11 12:51 GMT+1 óra  
Üdv.
Segítséget szeretnék kérni, WebGL alapú shaderek terén.
Adott egy 16x16 méretű textúra, itt a pixelek tárolják azt hogy hol kell megjeleníteni valamit (később pedig azt hogy mit).
A vertexek csak egy sima 16x16-os lap, így ezeken belül a textúra alapján helyezkednének el a kisebb lapok.
VS:
attribute vec3 aVertexPosition;
attribute vec2 aIndexPos;

uniform mat4 uMVMatrix;
uniform mat4 uPMatrix;

varying highp vec2 tex;
varying highp vec2 vIndexPos;
void main(void) {
gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);
tex = aVertexPosition.xz; //csak a sima szín
vIndexPos = aIndexPos;
}
FS:
varying highp vec2 tex;
varying highp vec2 vIndexPos;

uniform sampler2D uTexIndex;

void main(void) {
highp float szin = texture2D(uTexIndex,vIndexPos).r;
if (szin == 0.0) discard;
gl_FragColor = vec4(fract(tex),szin,1.0);
}
Tökéletesen működne, ám a sarkoknál elszámolás van. Ha ezt egy hibával kezelem (vIndexPos-ból kivonok valamennyit) akkor működik. Viszont több gépen is teszteltem, és valahol hibátlan a megjelentés, máshol más értékeket kell kivonni hogy hibamentes legyen.
KÉP:
272-hiba.png

Azért így használom, mert később optimalizálni szeretnék rengeteg lap megjelenítését!
Tudja valaki miért "számolja el" a textúra képpontját?

Ezt a hozzászólást peti634 módosította (2014.05.11 13:30 GMT+1 óra, ---)
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Viperion - Tag | 540 hsz       Online status #200286   2014.01.10 21:12 GMT+1 óra  
A hullámzó felületet milyen logika alapján csinálják meg?
Egyáltalán nincs rálátásom ezekre a dolgokra.

Ezt a hozzászólást Viperion módosította (2014.02.14 19:08 GMT+1 óra, ---)

   
FZoli - Szerkesztő | 4892 hsz       Online status #199947   2013.12.17 11:22 GMT+1 óra  
helyesen kell csak paddingolni és jó lesz a video alapján.
   
Tunyu - Tag | 444 hsz       Online status #199939   2013.12.16 19:49 GMT+1 óra  
Nem tudom hogy ez segít e, de ilyen relief shadert találtam, letölthetőt és magát a kódot is ha érdekel:
ReliefDiffuse

ReliefSpecular

   
nab - Tag | 30 hsz       Online status #199876   2013.12.12 17:38 GMT+1 óra  
Ok kösz.

   
syam - Törzstag | 1491 hsz       Online status #199875   2013.12.12 17:05 GMT+1 óra  
Az a sima bump map.
Ha mindenképp akarsz virtual displacementet akkor relief mapping / parallax occlusion mapping, de ezek már drágák.
alias aalberik
   
nab - Tag | 30 hsz       Online status #199874   2013.12.12 16:53 GMT+1 óra  
Értem, ennek nem örülök egyébként. Milyen shader -rel lehet azt megoldani, hogy high poly model látszatát kelti egy low poly model, de a uw kordinátákat nem érinti?

   
syam - Törzstag | 1491 hsz       Online status #199873   2013.12.12 16:46 GMT+1 óra  
Idézet
nab :
Csináltam egy 3d -és modelt, unity -ben szeretném használni, viszont a parallax map bugos. Nincs valakinek valami ötlete hogy mi okozhatja ezt? Fehér csíkok jelenek meg a modellen.

Videó itt: http://www.screenr.com/u29H



Ha jól láttam a fehér csíkok a textúrából jönnek.
A parallax map mértékétől függően "arrébb" címez a shader a textúrában így más textúrarészletek jelennek meg adott pixelen. Tile-os textúrával nincs gond, atlasz esetében paddingolni kell.
Vagy az effekt mértékét csökkenteni.
alias aalberik
   
nab - Tag | 30 hsz       Online status #199872   2013.12.12 16:27 GMT+1 óra  
Csináltam egy 3d -és modelt, unity -ben szeretném használni, viszont a parallax map bugos. Nincs valakinek valami ötlete hogy mi okozhatja ezt? Fehér csíkok jelenek meg a modellen.

Videó itt: http://www.screenr.com/u29H

   
ddbwo - Tag | 1625 hsz       Online status #194142   2013.05.21 16:38 GMT+1 óra  

Hát ezaz. Már csak hozzá kell adni.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5440 hsz       Online status #194117   2013.05.20 18:26 GMT+1 óra  
Ö megoldotta texcoorddal, ne bántsd már
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #194116   2013.05.20 18:15 GMT+1 óra  
De én nem texcoordról beszéltem, hanem adott pixelen worldspace visszaszámolása fullscreen quados renderelésnél linear depth használatával.

   
ddbwo - Tag | 1625 hsz       Online status #194108   2013.05.20 12:47 GMT+1 óra  
A fullscreen Quad textúrája nálam 0-1 tartományba esik. Ebből kijön a texcoord, ami GL-nél ST.
Az s az up-tengely arány, a t a right-tengelyé. ebből kivonva 0.5-öt megkapjuk a -0.5-0.5 tartományt.

Azaz fordítva. megint ez a kapkodás...
S a right, T az up
--

Mindegy, számold vertex shaderben és interpoláljon. Csak annyi a lényeg belőle, hogy nem fogyaszttanak sokat.

Ezt a hozzászólást ddbwo módosította (2013.05.20 14:31 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #194106   2013.05.20 11:57 GMT+1 óra  
Idézet
ddbwo :
Nálam:
st-0.5 és a (szélesség,magasság) felének szorzatából jön ki az irány. A camPos és a camView innen már megajda a pontos helyet.

De ezek elég kis időbe kerülnek, bárhogy csinálod.
---

Illetve ha van roll, nem árt tudni merre van felfelé.


Mi?

   
ddbwo - Tag | 1625 hsz       Online status #194105   2013.05.20 10:52 GMT+1 óra  
Nálam:
st-0.5 és a (szélesség,magasság) felének szorzatából jön ki az irány. A camPos és a camView innen már megajda a pontos helyet.

De ezek elég kis időbe kerülnek, bárhogy csinálod.
---

Illetve ha van roll, nem árt tudni merre van felfelé.

Ezt a hozzászólást ddbwo módosította (2013.05.20 11:16 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5440 hsz       Online status #194104   2013.05.20 09:43 GMT+1 óra  
Ebben az esetben sztem mindegy.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #194103   2013.05.20 08:22 GMT+1 óra  
Ha fullscreen quad + linear depth esetén vissza akarom számolni a worldspace pozíciót, akkor ugye megvannak a worldspace far plane-nél lévő frustum cornerek. Ez eddig stimmel. Ezt átadom a vertex shadernek. A kérdés az, hogy a fragment shadernek az adott corner pozíciót adjam tovább, vagy vertex shaderben számoljam ki az eyeRay-t (tehát corner - eyePosition), és azok között interpoláljon?

   
Swinkx - Törzstag | 106 hsz       Online status #193805   2013.04.29 10:30 GMT+1 óra  
Idézet
Swinkx :
Ötlet, hogy mi okozhatja ezt ?



Csak opengl 4.3tól van 2 dimenziós tömb shaderben

   
Swinkx - Törzstag | 106 hsz       Online status #193777   2013.04.27 12:35 GMT+1 óra  
Hello!
GLSL-ben szeretnék n-ed fokú Bézier felület tesszelációt ( n <=4 és openscenegraph-ot használok).
De valamiért a evaluation shader nem fordul le rendesen, és ezt a hibát kapom:
Kód:
Tesselation evaluation shader(s) were not successfully compiled before glLinkProgram() was called. Link failed.

evalShader
A get4points fgv-ben lévő két for ciklust ha kiszedem, akkor fordul. Ami azért vicces, mert ugyanezeket használom egy függvénnyel fentebb, ott viszont nem talál hibát bennük.
Ötlet, hogy mi okozhatja ezt ?

   
peti634 - Tag | 148 hsz       Online status #190675   2013.01.22 01:22 GMT+1 óra  
Üdv.
Nem rég kezdtem el újra WebGL-ezni, egy 2d-s játékra használnám, (mivel gyorsabbnak tűnik, mint a sima 2d canvas)
Sok kis négyzetet rajzolnék a képernyőre, amit úgymond oldalról nézek, és ezeket egymáshoz illesztem.
Nekem tökéletesen megy:
KÉP

Viszont egy másik gépen, már mintha nem illeszkednének pontosan az elemek:
KÉP

Látszik a háttér színe.
Az eredeti kép 64*64-es, ebbe jóval kisebb a tartalmas rész.
Arra rájöttem hogy ha teljes textúrát kirajzolom akkor biztos hogy megy mind a 2 gépen. Viszont ha egy kicsit belevágok (pl: 50*28 ) akkor már ilyen "hibákat" csinál az adott gépen.
Textúra koordináta széle: x2: 50/ 64 y2: 28/ 64

Persze a vertexek méretét is lejjebb vettem.

Miért csúszik szét a 2. gépen a textúra?
ha már szép nem vagy, hülye ne légy
http://www.pokolstudio.hu
   
Eldor - Tag | 162 hsz       Online status #190356   2013.01.14 16:12 GMT+1 óra  
Koszonom, erre voltam kivancsi.

   
Asylum - Törzstag | 5440 hsz       Online status #190355   2013.01.14 16:08 GMT+1 óra  
Kód:
// vertex shader
gl_Position = proj * (modelview * vec4(pos, 1.0));

// fragment shader
vec2 zw = gl_Position.zw; // ez nem valid, de most a pelda kevdeert

gl_FragDepth = zw.x / zw.y; // [-1, 1]
gl_FragDepth = gl_FragDepth * 0.5 + 0.5; // [0, 1]


Mivel ez automatikusan tortenik a DX-es proj matrix nem hasznalhato opengl-ben, elobb at kell alakitani ugy hogy a [-1, 1]-be rakja a z-t.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Eldor - Tag | 162 hsz       Online status #190354   2013.01.14 16:00 GMT+1 óra  
A kerdes nem az, hogy en hogyan szamoljam ki a melysegerteket, hanem hogy az OpenGL hogyan szamolja (nem en adom at a gl_FragDepth-nek). Tegyuk fel, hogy a gl_Position egy varying, amit felhasznalva a fragment shader-ben az OpenGL kiszamolja a melysegerteket.

Ekkor az OpenGL mit irna az egyenloseg jobb oldalara:
gl_FragDepth = ...

En vetitesi matrixnak az itt megadott matrixot hasznalom: http://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
Ez alapjan a matrix alapjan a z-re kapott eredmeny (felteve, hogy a fragment shader-ben a gl_Position = (wx, wy, wz, w)) nem [0, 1] tartomanyba fog esni. Vagy valamit nagyon elszamoltam.

   
Pretender - Törzstag | 2498 hsz       Online status #190353   2013.01.14 15:30 GMT+1 óra  
DirectX-ben a projection mátrix előállítása (perspective használata esetén):
Kód:
        inline void perspectiveFOView(const float32& _fov, const float32& _aspect,
                                      const float32& _nPlane, const float32& _fPlane)
        {
            const float32 f = (1.0f / tan(_fov * 0.5f));
            const float32 fminusn = (_fPlane - _nPlane);

            m[0][0] = f / _aspect;
            m[1][1] = f;
            m[2][2] = _fPlane / fminusn;
            m[2][3] = 1.0f;
            m[3][2] = -_nPlane * _fPlane / fminusn;
        }

Ez maga a mátrix, OpenGL-ben ennek a transzponáltja van. Ha ennek a mátrixnak a transzponáltjával megszorzol egy vektort, akkor megkapod a screenspace koordinátáit. Ezt fogod, és leosztod a far és near plane távolságával fragment shaderben, vagy hagyod ~[0,farplane] intervallumon.

   
syam - Törzstag | 1491 hsz       Online status #190351   2013.01.14 15:26 GMT+1 óra  
Homogén osztást fragmens oldalon kell végezni!

Ha az megvan, akkor jön a depthrange, ami átvisz -1 ... +1 tartományból 0 ... 1 tartományba.
Alapjáraton ez X * 0.5 + 0.5.
alias aalberik
   
Eldor - Tag | 162 hsz       Online status #190350   2013.01.14 15:16 GMT+1 óra  
GLSL-el kuzdok mostansag. A melysegertek szamolassal vannak problemaim:

Adott egy vektor (x, y, z, 1). A vetitesi matrixot beszorzom ezzel a vektorral: projection_matrix * vector. Ezzel kapok egy masik vektort: (rw * rx, rw * ry, rw * rz, rw). Ezt adom eredmenyul a gl_Position-nek. A kerdesem az, hogy ebbol a videokartya hogyan szamolja ki a tenyleges melysegerteket (ugyebar [0, 1] intervallum).

   
Asylum - Törzstag | 5440 hsz       Online status #190305   2013.01.13 17:19 GMT+1 óra  
Idézet
versio :
ha kiprobaljatok a vs2012-ben levo shader debuggert, utana az opengl-re mar csak kopni fogtok



Miben tud többet a pix-nél?
Miben tud többet a glsldevil-nél?
Tud végre memoryból betöltve is source-ot mutatni?

(mondjuk csak el kéne inditanom )

szerk.: nem müködik (dx9...vagy csak azért mert nem a föablakba rajzolok?); szar
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #190292   2013.01.13 10:57 GMT+1 óra  
Tehát akkor nem nagyon van bejáratott szokás, azaz engineből név alapján kell hivatkozni rá. A user nem fogja buzerálni a shaderjeimet remélhetőleg. Főleg, hogy csak a bináris lesz ott
Másrészről meg ha már valaki shadert akarna írni hozzá, akkor annak az enginebe is bele kellene ezáltal nyúlnia, ha bármi külső paramétert (uniformot) használni akarna. Ilyen meg nem fog megtörténni...

OpenGlről meg most nem volt szó.

   
versio - Tag | 659 hsz       Online status #190289   2013.01.13 10:12 GMT+1 óra  
ha kiprobaljatok a vs2012-ben levo shader debuggert, utana az opengl-re mar csak kopni fogtok
   
Asylum - Törzstag | 5440 hsz       Online status #190287   2013.01.13 09:38 GMT+1 óra  
Ilyen beépitös dolgokat ne használj mert a gyökér user baszik elolvasni a dokumentáciot és ugyis a sajátját használja (nálam az a probléma, hogy még csak nem is fog müködni neki).
Az uniformokra meg lehet dobni assertet, hogy nincs ilyen nevü.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #190286   2013.01.13 09:19 GMT+1 óra  
Nem tudom, hogy ez melyik topicba illene a legjobban, de remélem jó lesz itt.

Szóval azon gondolkoztam, hogy az uniform változókat a nevük alapján azonosítjuk a shaderben, illetve a kódból vagy név, vagy regiszter alapján lehet elérni (DX-ben a ConstantTable-n keresztül). Ez így csak annyiban "rossz", hogy ha valamit valahol elírok, vagy módosítok, akkor azt engine oldalon is, és shader oldalon is módosítani kell ugyan arra. Ha meg regisztereket használok, azoknak is van egy id-je, amit ugyan úgy ismernem kell. Erre van valami szép megoldás, hogy csak 1 helyen kelljen definiálni a dolgokat, vagy törődjek bele, hogy ez így van?

Egyelőre néhány ilyen nagyon globális dolgot úgy csináltam meg, hogy felvetten egy enumot, ami a legfőbb globális paramétereket tartalmazza (World, View, ViewProj, stb.), és ezekhez rendeltem egy nevet. A shader fordításakor ezeket egy listában át lehet adni neki, és automatikusan (a megfelelő névvel és szintaxisban természetesen) a shader kódhoz hozzábiggyeszti, és úgy fordítja le. Így a shaderben lehet őket használni, mint valami beépített konstansok (WORLD, VIEW, ...). De ezt azért mindenre nem a legkényelmesebb eljátszani, főleg, hogy úgy a shader írásakor ismerni kell, hogy a fordításkor milyen paramétereket adtunk be neki.

   
Asylum - Törzstag | 5440 hsz       Online status #190205   2013.01.11 14:43 GMT+1 óra  
Idézet
versio :
Asylum: a geometry, hull, domain, compute shadereket hogyan forditod at ?



Nem foglalkozom ilyen foloslgesen agyonhypeolt dolgokkal (ami mobilon nincs is, sot macen geometry shader sincs meg). Egyebkent meg nem ertem mert kulonbozne a forditasa az osszes tobbitol.

szerk.: compute shader...na az az amit soha nem fogok tamogatni, mert van opencl support az engineben.

Ezt a hozzászólást Asylum módosította (2013.01.11 18:12 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2519 hsz       Online status #190204   2013.01.11 14:19 GMT+1 óra  
Ha nem farkasszemnéző játékot csinálsz, akkor úgysem fog látszani. Amúgy meg ez nem effekt, ez egy animáció.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
versio - Tag | 659 hsz       Online status #190203   2013.01.11 14:18 GMT+1 óra  
Asylum: a geometry, hull, domain, compute shadereket hogyan forditod at ?
   
Asylum - Törzstag | 5440 hsz       Online status #190202   2013.01.11 13:45 GMT+1 óra  
A verzio: Ugy ahogy a Doom 3 csinalja a szornyek eltuneset: alpha ref + discard. Mondjuk hogy texturat honnan szerzel hozza az mar legyen a te gondod

B verzio: kirendereled az animacio framejeit egy texturaba, es lejatszod.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Tibsy - Tag | 307 hsz       Online status #190197   2013.01.11 12:41 GMT+1 óra  
Hi
A játékomba van egy karakter, aminek szeretnék hasonló efectet csinálni a szemére valaki nem tudja hogy lehetne ezt meg oldani egy játékba a nélkül hogy le zabálná az eröforásokat és nem bevágott video

itt az amire gondoltam
http://img.tejbegriz.com/wp-content/uploads/2013/01/65856.gif
   
Asylum - Törzstag | 5440 hsz       Online status #190179   2013.01.11 08:57 GMT+1 óra  
Igen egyebkent a doom 3 az ilyen search and replace-el konvertalja a hlsl-t glsl-re, de ezzel limitaciokat allit a felhasznalo ele, amik nem is azonnal derulnek ki (bar van asszem shader editora, de ingame).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #190176   2013.01.11 08:47 GMT+1 óra  
A saját nyelvre nyilván nem jó a d3dxcompileshader, de fel lehetne úgy is fogni, hogy egy átmeneti bufferbe átalakítom HLSL-re, és arra hívom meg a compilert. Egyrészt nem is értek hozzá, másrészt nem akarom azzal az időmet tölteni, hogy syntax checkert, meg a tényleges fordítót megírom.
Minden esetre cool kis toolt csináltál

   
Asylum - Törzstag | 5440 hsz       Online status #190171   2013.01.10 23:52 GMT+1 óra  
A quarter miatt nem, de egyébként is lehetnek olyan bövitések ami dx-ben nincs. A rugalmasság miatt érdemesebb apifüggetlenné tenni. Amúgymeg minimális extra kód az (a hlsl impl 315 sor, a glsl 536). Hasonlóan kevés kóddal bármilyen más nyelvre átforditható, talán még assemblyre is.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #190169   2013.01.10 22:57 GMT+1 óra  
Szuper
Fordításhoz amúgy nem lehetne ezt használni dx-hez? Kipróbáltam, szépen működik úgy, hogy az eredményt (code buffer) kiírom egy fileba, azt olvasom be, és abból készítem a shadert. Csak nem tudom, hogy ez most csak nálam jó, vagy ez így egy jó megközelítés.
msdn.microsoft.com/en-us/library/windows/desktop/bb172731(v=vs.85).aspx

   
Asylum - Törzstag | 5440 hsz       Online status #190158   2013.01.10 18:55 GMT+1 óra  
Igen. A fordító maga egy teljes értékű fordító, tehát van benne:

- elöfordito (ezt most irom)
- syntax check
- implicit típuskonverzió (amit a GLSL tipikusan nem enged meg)
- konstans kifejezéseket fordítási időben kiértékeli
- uniformok a shaderen belül inicializálhatók (ezt fordítás után el lehet kérni és nyilván be kell állítani)
- kibövitett szemantikák megadhatóak (pl. EYEPOSITION), sőt ezek szigorúan a nyelv részei (tehát pl. KISMACSKA nem lehet)
- kibövitett tipusok opengl es miatt, pl. a quarterN (ami lowp float-nak felel meg); ezen kivül a szokásosak használhatók (halfN, floatN, intN, uintN, boolN).
- platformfüggetlen
- (terv) inline függvények kifejtése, ciklusok unrollolása (ezek BAROMI hasznosak, mert a GLSL forditó nem mindig teszi meg!!!).

A szükséges információt biztosítja kifelé, de alapvetöen a quadron logikájához illeszkedik (tehát mig HLSL ben lehet külön shader model vertex és pixel shadernek, itt ez a technikához tartozik).

Egyszerre dx + gl: minden további nélkül megoldható, nyilván külön hwnd-jük van. GLES már nem hiszem h igy menne, ezt valszeg majd választhatóvá teszem (GL vagy GLES legyen az alsó).

szerk.: amugy te szerencsés helyzetben vagy, mert tudod hogy kell c#-al összebuherálni, de én az editort winapival kinlodtam össze (mert majd mac-en is meg akarom csinálni valamikor).

Ezt a hozzászólást Asylum módosította (2013.01.10 19:04 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #190152   2013.01.10 15:57 GMT+1 óra  
Ebből meg készítesz egy GLSL kódot? Amúgy hogy van egyszerre 2 device (dx+ogl)? Én is amúgy valami ilyesmire gondoltam, egy egyszerű kis szövegszerkesztős tool, ahol meg lehet nézni, hogy lefordul-e a cuccos (és mondjuk le is fordítani binárisba).

   
Asylum - Törzstag | 5440 hsz       Online status #190148   2013.01.10 14:55 GMT+1 óra  
Pont ilyet csinaltam telen:



A nyelv sajat de erosen haosnlit a HLSL FX-re (opengl es miatt megszoritasokat tettem pl. nincs struct).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #190109   2013.01.09 15:45 GMT+1 óra  
Az úgy király Egy értelmesebb shader rendszeren gondolkozok, ahol valami "saját nyelven" meg lehet írni (azaz nem HLSL / GLSL specifikusan) a shadert, így egy esetleges portoláskor nem kell átírni őket.

   
fpeti - Törzstag | 1280 hsz       Online status #190108   2013.01.09 15:32 GMT+1 óra  
Szerintem semmibe, behelyettesíti, kb mint egy makrót.
   
Pretender - Törzstag | 2498 hsz       Online status #190107   2013.01.09 15:17 GMT+1 óra  
Na, rég járattam már a topicot...
Shaderek (főleg HLSL) esetén mennyibe kerül egy függvényhívás? Csak mert pl. azon gondolkozok, hogy az ilyen diffuse számolást (paraméterként átadnám a normal-t, stb.), meg ilyen általánosabb dolgokat kiraknám egy file-ba, amit csak be kellene includeolni, és meghívni a megfelelő helyen.

   
Pretender - Törzstag | 2498 hsz       Online status #154406   2011.06.15 12:44 GMT+1 óra  
én is ugyan azt számolom, csak kihagyom belőle a near plane kivonását, mert 0.1f nem oszt, nem szoroz egyelőre. Nálad is ugyan az van, csak az előbb említett near plane dologgal
Jelenleg most nemlineáris módszert használok, azzal működik
Kód:
//VS
float4 wpos = mul(Position, world);
Position = mul(wpos, viewProj);

Depth.x = Position.z;
Depth.y = Position.w;

//PS
//az RT2 egy R32F render targetbe adja a cuccot
RT2 = Depth.x / Depth.y;

A lighting passnál meg (point light, nem fullscreen quad, hanem ilyen bounding volume cucc... szóval egy gömböt renderelek )
Kód:
//VS
float4 wpos = mul(Position, world);
Position = mul(wpos, viewProj);

ScreenPos = Position;

//PS
ScreenPos.xy /= ScreenPos.w;
float2 Texcoord = 0.5f * (float2(ScreenPos.x, -ScreenPos.y) + 1.0f);

float4 position = float4(ScreenPos.x, ScreenPos.y, depthText, 1.0f);
position = mul(position, invViewProj);
position /= position.w;

Ebből kellene majd valamikor lineáris deptheset csinálni, de most nem leszek itthon délután, majd kipróbálom, amit írtál

   
Frissebbek | Korábbi postok
[1] > 2 < [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [22]