.[ ČeskéHry.cz ].
Textura místo obarvení výškové mapy
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 24. listopad 2007, 23:24:56    Předmět: zpg Odpovědět s citátem

ahoj,
jsem tu novy a koukam ze se tu resi zrovna to co mne taky zajima, delam totiz asi na tom samem(ZPG). Mozna brzo narazis na dalsi problem a tj. pouziti vice textur na teren. Takze nez se na to zeptas..
Budes si muset udelat vlastni Vertexformat, kterej obsahuje floaty pro jednotlivy textury. Pak jsou dve cesty, bud pouzit shadery, nebo ne. ja zvolil shadery viz. turoial(je tu i ten vertexformat)
http://www.codeproject.com/cs/media/terrainrendering.asp?df=100&forumid=101594&exp=0&select=1273740
hodne je toho taky tady
http://www.riemers.net/eng/Tutorials/DirectX/Csharp/series3.php
Myslim ze pokud chces, aby to vypadalo hezky, tak se pouziti shaderu nevyhnes. Ja jsem napred trochu tapal v HLSL, ale celkem rychle jsem shader z tutorialu prizpusobil mym pozadavkum a napasoval do svyho projektu. Ma to ale jednu nevyhodu, render transformace nemuzes delat primo na maticich device, ale vsechny pres shadery, proste to vyhodi nejakou vyjimku. Ale znameno to jen to ze si pro kazdy obejkt vytvoris wvpMatrix a posles to do shaderu jako handle efektu pred tim nez objekt vykreslis. coz by melo znamenat jen predelani metody Render naseho formulare. O trasnformaci objektu se postara vertex shader, o namichani textur a osvetleni se postara pixel shader. Je to vsechno v tech tutorialech, sic. anglicky, ale s tim se musime smirit;] Kdyz by te zajimalo neco konkretniho, tak se zeptej. Ja jdu zjistovat jak nacist, zobrazit a rozpohybovat .X model.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Filkon



Založen: 19. 11. 2007
Příspěvky: 15

PříspěvekZaslal: 28. listopad 2007, 13:29:40    Předmět: Odpovědět s citátem

Zdravim.
Taky řešim to co ty, ale shaderom se chci vyhnout. Ten Vertexformat udělam jak? V tom tutoriálu je toho moc a nevim co potřebuju pro shadery a co je bez nich...
Eště bych se zeptal - jak si vyřešil, aby ti to nekoukalo do mapy při tich skocích z 0 na max. výšku?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 28. listopad 2007, 13:35:06    Předmět: Odpovědět s citátem

moje struktura vertexu vypada takhle, tzn. ze micham 4 druhy textur


kód:

public struct TerrainVertex
   {
      Vector3 pos;
      Vector3 nor;      
      float tu,tv;
      float b1,b2,b3,b4;      
      public TerrainVertex(Vector3 p,Vector3 n,float u,float v,float B1,float B2,float B3, float B4, bool normalize)
      {
         pos = p;nor = n;tu = u;tv = v;b1=B1; b2=B2; b3=B3;b4 = B4;
         float total = b1 + b2 + b3 + b4;
         if ( normalize)
         {
            // soucet vsech blend hodnot musi byt 1
            b1 /= total;
            b2 /= total;
            b3 /= total;
            b4 /= total;
         }
      }
      public Vector3 Normal
      {
         get { return nor; }
         set { nor = value; }
      }
      public Vector3 Position
      {
         get { return pos; }
         set { pos = value; }
      }
      public static VertexFormats Format = VertexFormats.Position | VertexFormats.Normal | VertexFormats.Texture0 | VertexFormats.Texture1 | VertexFormats.Texture2 | VertexFormats.Texture3;
   }



koukani do mapy pri skocich z 0 na max? nevim co presne myslis
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 28. listopad 2007, 13:43:52    Předmět: Odpovědět s citátem

popravde mi neni moc jasny jak textury zamichat bez shaderu(tak aby to vypadalo dobre)...Asi budes muset teren rozdelit na vice casti, seradit podle textury a pri renderovani prepinat texturu na device. Potom je ale zbytecny davat blends do vertexformatu a budes moci pouzit asi nejakej standardni, pokud teda nechces Colored a Textured zaroven. Btw, tenhle zpusob jsem zkousel puvodne taky, prechod z travy na kameny vypada hrozne, sou tam videt hrany. Naopak pixel shader ti to krasne prolozi, tak ze jedna textura plynule prachazi v druhou i kdyz zmena v blends je vzhledem k sousednimu vertexu 100%.

Naposledy upravil krkovicka dne 28. listopad 2007, 13:54:36, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Filkon



Založen: 19. 11. 2007
Příspěvky: 15

PříspěvekZaslal: 28. listopad 2007, 13:54:32    Předmět: Odpovědět s citátem

No mně to jasný taky není - myslel sem, jestli by nějak nešlo vytvořit víc meshů pro různý výšky - udělat třeba 3 pruhy pro nížiny, roviny a hory... a ty bych pak votexturoval...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 28. listopad 2007, 13:55:29    Předmět: Odpovědět s citátem

ja ti rozumim, akorat to vypada hnusne
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Filkon



Založen: 19. 11. 2007
Příspěvky: 15

PříspěvekZaslal: 28. listopad 2007, 14:00:06    Předmět: Odpovědět s citátem

No a jak teda ten mesh rozdělim?
To koukání do mapy - myslim, když jdeš třeba ve výšce 0 a je před tebou kopec skoro kolmej, vysokej 25,5, tak když přijdu úplně před něj, tak do něj vidim...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 28. listopad 2007, 14:10:30    Předmět: Odpovědět s citátem

aha, takovejhle extremni pripad jsem nezkousel, zrejme to souvisi s predni orezavaci rovinnou, zkusim jak se mi to chova....
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 28. listopad 2007, 14:36:22    Předmět: Odpovědět s citátem

jj, uz to vidim, ale nevim jak to poresit. ja jsem se divil ze mam dva body dole, kuli tomu ze je videt do terenu, dik za upozorneni, dam vedet kdyz na neco prijdu, zkus to taky ;]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Filkon



Založen: 19. 11. 2007
Příspěvky: 15

PříspěvekZaslal: 28. listopad 2007, 14:42:17    Předmět: Odpovědět s citátem

Já mam taky body dole - je to tim, že ty nekoukáš přímo z pozice kamery, ale z pozice + nějaký to nearPlane nebo jak se to menuje - bejvá to nastavený na nějaký malý číslo(0.1, 0.01 nebo tak).... A vidíš do toho terénu, protože výšku počítáš z pozice kamery a ne z tý pozice, z který koukáš... Právě sme to už řešili s kámošem, ale nic kloudnýho sme nevymysleli... tak zkus na něco přijít, třeba nám poradí někdo tady na foru...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 28. listopad 2007, 15:57:08    Předmět: Odpovědět s citátem

Tento tvůj příspěvek jsem absolutně nepochopil.

Filkon napsal:
Já mam taky body dole - je to tim, že ty nekoukáš přímo z pozice kamery, ale z pozice + nějaký to nearPlane nebo jak se to menuje

Samozřejmě koukáš z pozice kamery, akorát nearPlane ti to ořízne kousek před tebou, takže objekty vidíš až od určité vzdálenosti.

Filkon napsal:
výšku počítáš z pozice kamery a ne z tý pozice, z který koukáš

To se mi taky nezdá... pozice kamery je přece pozice, z jaké koukáš.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
krkovicka



Založen: 24. 11. 2007
Příspěvky: 14

PříspěvekZaslal: 28. listopad 2007, 16:38:02    Předmět: Odpovědět s citátem

problem nastane kdyz mezi dvema body vyskove mapy je takovy rozdil ze vysledny sklon terenu je prilis strmy. Kdyz je potom mala i vyska pozorovatele, ktery se pohybuje po terenu(kamera kopiruje teren ve vysce oci) a pozorovatel prijde k takove strme stene, predni orezavaci rovina ten teren dole, orizne, je to prosty, ale nejsem si jist jak moc blizko se muze tato rovina nastavit, popr. menit za behu.
mozna by stacilo pomyslnou hlavu pozorovatele umistit neco malo za nohy, efekt bude takovej ze zmena vysky pri chuzi bude reagovat o neco drive. pri rozhlizeni ale bude kamera krouzit okolo osy, kde stojis, tezko rict jak to bude vypadat
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Filkon



Založen: 19. 11. 2007
Příspěvky: 15

PříspěvekZaslal: 28. listopad 2007, 20:51:33    Předmět: Odpovědět s citátem

krkovicka: takhle nějak sem to myslel Smile To řešení jak ty říkáš mam udělaný, ale furt mi eště zalejzá do krajiny - třeba při chůzi bokem. A nemůžu přeci uhnout do strany, aby "hlava neseděla na krku, ale na rameni"...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Lando



Založen: 29. 07. 2007
Příspěvky: 33
Bydliště: Cestice

PříspěvekZaslal: 28. listopad 2007, 23:21:44    Předmět: Odpovědět s citátem

Tady by asi bylo dobry testovat kolize vice bodu (o nejake delta vlevo, vpravo a vpredu od kamery) kdy staci aby byl jeden bod v kolizi a pohyb se neprovede/upravi.
Otazka je, jak mate vyresene kolize. Treba muze byt jednodussi pocitat kolizi koule se scenou, kdy koule ma stred v pozici kamery a polomer >= vzdalenost orezavaci plochy...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 29. listopad 2007, 23:52:21    Předmět: Odpovědět s citátem

Jo přesně tak, vytvoříš si obalovací kouli se středem S = pozice kamery a s poloměrem R = nearPlane+epsilon, kde epsilon je nějaké malé číslo (abychom se vyhnuli problémům s nepřesností). Poté budeš řešit kolize s terénem třeba per-triangle (trojuhelníková síť může být hodně hrubá, aby to moc nebrzdilo) a při kolizi vždycky najdeš takový kolizní bod P, který je nejblíže středu koule. Kameru je třeba dostat z kolize ven, to uděláš tak, že ji posuneš o vektor:

kód:
 S-P
----- * (R - |S-P|)
|S-P|

To samé zkontroluj pro sousední trojúhelníky, protože když kameru dostaneš pryč z kolize, může se dostat do kolize s něčím jiným.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna