Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Jak na klikani v OpenGL

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Jak na klikani v OpenGL

Autor: Eosie

13:54:15 22.01.2009

1) Test přímka-trojúhelník, což by byl poslední krok v bounding volume hierarchy? To se vyplatí, protože uživatel kliká jen jednou za nějakých [ital]n[/ital] snímků.

2) Udělat si vlastní selection buffer? To by asi nefungovalo, protože trojúhelníků by mohlo být víc jak 16 milionů a zhruba tolik máš dostupných barev pro identifikaci trojúhelníku, což se ale dá přežít. Dále na co generovat selection buffer každý snímek, když uživatel nemusí vůbec nikam kliknout? A proč generovat vždy celý selection buffer, když stejně potřebujeme znát jen jeden pixel?

BTW. Deprecated funkce si vesele používejte. V GL 1.0 až 3.0 zůstanou. Jenom kdybyste chtěli použít 3.1 nebo novější, pak vám je rendering context zakáže. A verzi 3.0 a novější musíte specifikovat při vytváření contextu, jinak vždycky dostanete maximálně 2.1, se vším, co k tomu patří.

Citovat příspěvek

 

Re: Jak na klikani v OpenGL

Autor: frca

21:34:50 21.01.2009

Na pixel přesný výběr nějakého chumlu náhodných trojúhelníků třeba i s alfa testem se může hodit. Neříkám, že je to Arethilův případ, ale jak to řešit bez selection bufferu (což je otázka o to palčivější, že je deprecated)?

Citovat příspěvek

 

Re: Jak na klikani v OpenGL

Autor: Eosie

16:50:23 21.01.2009

Selection buffer [ital]je[/ital] deprecated. Viz OpenGL 3.0 specifikace strana 407 uprostřed (selection and feedback modes).

Selection buffer je pomalý kvůli tomu, že ho GPU nepodporuje. GPU by pokud možno nemělo nic vracet a pokud jo, tak jedině se spožděním (min. 1 snímek). Důvod pomalosti je ten, že zpracování vertexů a kreslení do selection bufferu se nejčastěji řeší softwarově, tzn. na CPU.

V praxi se to řeší matematicky. Ve 2D prostě test na průnik bod-obdélník, bod-kruh, bod-mnohoúhelník atd., kde bod je pozice myši. Ve 3D se to řeší testem na průnik přímka-koule, přímka-box, pro jemnější výběr je dobrý zavést BVH (bounding volume hierarchy) atd., kde přímka je vrhnutá z pozice myši kolmo na obraz do prostoru.

Citovat příspěvek

 

Re: Jak na klikani v OpenGL

Autor: frca

20:53:20 20.01.2009

Je v GL 3 deprecated aspoň ten (sel. buf.)? Toto by se taky obecně hodilo uvádět, ať má diskuse i jiný přínos než sté omletí známých faktů.

Edit: Zdá se, že deprecated není. Opravdu je to tak pomalé? Mně se to jeví jako nejlepší řešení. A v některých případech jediné rozumně možné (např. 3d editor typu Blender).

Citovat příspěvek

 

Re: Jak na klikani v OpenGL

Autor: Eosie

18:24:48 20.01.2009

Asi bude lepší tu texturu držet v RAM a zjišťovat si ručně alphu než používat POMALÝ selection buffer.

Citovat příspěvek

 

Re: Jak na klikani v OpenGL

Autor: Augi

11:40:15 20.01.2009

Hodně optimalizací (nejen) v grafice je založených na prosté myšlence - omezit zpracovávaný prostor.
Nejprve bych zkusil otestovat tlačítko jako hranaté (tzn. jestli se kliklo do obdélníku, což je jednoduché) a v případě kladného výsledku bych přistoupil k bližší analýze (zjištění, zda kliknutý bod je průhledný či nikoliv).

Citovat příspěvek

 

Re: Jak na klikani v OpenGL

Autor: michalferko

11:39:54 20.01.2009

a co z tych tutorialov bolo pomale? Aby to nereagovalo na kompletne priehladne casti tlacitka, tak najskor musis citat pixel na ktorom sa nachadzas a zistovat, ako hlboko je (ak je v rovnakej hlbke ako tlacitko, tak je mys na tlacitku, ak je dalej, nie je na nom). To je jedine co ma napadlo, ale urcite su aj ine sposoby.

Citovat příspěvek

 

Jak na klikani v OpenGL

Autor: Arethil

11:01:30 20.01.2009

Zdravim :)
chystam se vrhnout na menu, nicmene nevim, jak mam zjisit, zda jsem klikl na objekt. Na netu jsem objevil tunu tutorialu, nektere jsem zkusil, ale stalo se mi, ze dane algoritmy byly prilis pomale. Chtel jsem se take zeptat, jak na kliknuti na objekt, ktery pouziva pruihlenost - napr. kulate tlacitko. Nechci, aby reagovalo v rozich, ale pouze na povrchu tlacitka, tedy jen na texture, bez alfy...
Neznate nekdo nejaky rychly zpusob, jak zjistit kliknuti, nebo tu proste, jako vsude, jde o optimalizace?
Dekuji za odpovedi :)...

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: