.[ ČeskéHry.cz ].
3D Smer kliknuti

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
SUK



Založen: 14. 11. 2007
Příspěvky: 93
Bydliště: /dev/null

PříspěvekZaslal: 27. leden 2008, 19:33:56    Předmět: 3D Smer kliknuti Odpovědět s citátem

Kdyz uzivatel klikne nekam do 3D sceny (tzn na formular), potrebuju zjistit jakym to je smerem od kamery. Zatim mam napsano tohle: http://rafb.net/p/cUMCvQ35.html coz ale bohuzel nefunguje uplne tak jak bych chtel, hlavne kdyz se podivam pod sebe. Vi/ma nekdo nejaky reseni?

A jen tak mimochodem - jakej je asi tak idealni(kolik treba pouzivaj hry ap) pocet vertexu ve scene?

dik za rady, budou li
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky Yahoo Messenger MSN Messenger
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 27. leden 2008, 20:09:50    Předmět: Odpovědět s citátem

no mrkni na nehe je tam clanok o unproject http://nehe.ceske-hry.cz/cl_gl_gluunproject.php a pocet trojuholnikov zalezi od toho kolko karta zvladne. dnes je to tak milion tris
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
SUK



Založen: 14. 11. 2007
Příspěvky: 93
Bydliště: /dev/null

PříspěvekZaslal: 27. leden 2008, 20:26:32    Předmět: Odpovědět s citátem

milion? program co pisu uz kouse pri 150000 vertexech..

jinak dik za ten odkaz, snad to dokazu previst na to co prave delam.. btw, jak si mam predstavit souradnice kurzoru ktery to dela? je to smer od kamery nebo jak?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky Yahoo Messenger MSN Messenger
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 27. leden 2008, 23:58:12    Předmět: Odpovědět s citátem

ide o to aku mas kartu. za druhe ako to vykrelujes. ale na Radeon 3850 co mam doma mi beha Crysis benchamrk kde vypisuje pocet tris okolo 1000000 a ide to na 22-26FPS a to este nie je ta najlepsia karta na trhu. no ak vykreslujes cez glBegin glEnd(odhadujem ze ides cez OGL) a na starucicekej Geforce 440SE som vykresloval 128000 tris iba s cullingom na 8FPS na glBegin glEnd a po prerobeni na DisplayListy to stuplo na 40FPS.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
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. leden 2008, 11:11:08    Předmět: Odpovědět s citátem

Pro dosažení vhodné rychlosti doporučuju používat vertex arrays + vertex buffery + indexy.

Co se týče gluUnproject, nepoužívej glReadPixels na zjištění hloubky, jak je uvedeno v článku, je to strašně pomalé. Místo toho zadej hloubku jako 0, nech si vrátit pozici, pak zadej hloubku jako 1 a udělej to samé. Dostaneš 2 pozice, z nichž sestrojíš 3D přímku. Pro zjištění kolize s objekty budeš testovat průnik s touto přímkou.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
SUK



Založen: 14. 11. 2007
Příspěvky: 93
Bydliště: /dev/null

PříspěvekZaslal: 28. leden 2008, 11:27:41    Předmět: Odpovědět s citátem

pouzivam DX, ale tak z toho OGL to snad nejak dostanu...

pouzivam jen jeden vertex buffer pro vse co vykresluju, nevim jestli to je rychlejsi nebo pomalejsi ale v tom problem asi tolik nebude si myslim

Eosie: ok, diky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky Yahoo Messenger MSN Messenger
Marek



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

PříspěvekZaslal: 28. leden 2008, 11:34:41    Předmět: Odpovědět s citátem

gluUnproject je jenom pár jednoduchých výpočtů. Bod ve window space to převede do world space, toť vše.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 29. leden 2008, 09:36:53    Předmět: Odpovědět s citátem

Jak říká eosie, vezmeš ModelViewProjection matici (nevím bohužel jak se jí říká v DX), ale je to normálě view matice kamery (invertovaná modelová matice kamery) vynásobená projekční maticí. Pak tu matici invertuj (aby nepřeváděla world space do post perspektive, ale obráceně).

Pak vezmeš souřadnice kursoru v okně (v opengl je to -1..1, čili musíš podělit velikostí okna, posunout a zvětšit...) jako třetí souřadnici zadáš -1 (což v OpenGL odpovídá pozici NearClip Plane v post perspektivním prostoru). Čtvrtá souřadnice je 1. Vynásobíš to tou maticí. Nezapomeň výsledek podělit čtvrtou suořadnicí. Tohle samý uděláš ještě jednou, ale jako hloubku (třetí souřadnici) dosadíš 1 (FarClip). A máš ty dva body ve světovým prostoru.

Funguje to, používám to v editoru.

V DX to bude nejspíš to samý, maximálně nějaký drobný odlišnosti.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 29. leden 2008, 10:08:41    Předmět: Odpovědět s citátem

V DX se to liší tím, že near není na -1, ale na 0. Jinak je to stejný.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
SUK



Založen: 14. 11. 2007
Příspěvky: 93
Bydliště: /dev/null

PříspěvekZaslal: 29. leden 2008, 10:38:18    Předmět: Odpovědět s citátem

no, mam uz zjisteny vsechny souradnice, je nekde k sehnani zdroj glUnProject ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky Yahoo Messenger MSN Messenger
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 29. leden 2008, 10:55:26    Předmět: Odpovědět s citátem

Co třeba zkusit se zeptat Googlu nebo se mrknout do DirectX SDK? Pak bys rychle zjistil, že v DirectX existuje funkce D3DXVec3Unproject, která slouží přesně k tomu, co chceš. Jestli pak budeš chtít třeba testovat průsečík polopřímky s nějakým objektem (tj. hledání objektu, na který se kliklo), pak existuje v DirectX funkce D3DXIntersect - před jejím voláním ale doporučuju provést nějaký pre-test (např. na bounding sphere).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
SUK



Založen: 14. 11. 2007
Příspěvky: 93
Bydliště: /dev/null

PříspěvekZaslal: 29. leden 2008, 11:16:56    Předmět: Odpovědět s citátem

Ja googlil jak jsem mohl, jen se mi nedarilo najit to co potrebuju. Ale uz to mam diky Vector.Unproject a pak jsem odectl a normalizoval vektory a funguje. Dik moc!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky Yahoo Messenger MSN Messenger
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
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