Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Játro.m
Založen: 01. 02. 2010 Příspěvky: 230
|
Zaslal: 8. květen 2010, 15:42:46 Předmět: Kolize s BSP brushi |
|
|
Zdarec,
delam si takovej malej loader na bsp mapy z Q3 s kolizema. Nejaky materialy jsem cetl a chtel bych vedet jak spocitat plane pomoci kteryho se pocita kolize v urcitym brushi s kamerou. Vim ze je to v tom formatu ulozeny ale chtel bych to vedet at vim jak to spocitat, protoze bych chtel bsp deleni pouzit u sebe. Vykresleni geometrie bych mel hotovy ale kolize jsou pro me jako antimatematika docela sousto.
Jak jsem to tak pochopil tak plane ma 4 body - vertex 1 (a), vertex 2 (b), vertex 3(c) a d se dopocita pres dot, normala a vertex 0? float d = dot(normala,vertex0); ?
Jestli v tom mam totalni bordel, tak sorry
Dik Jatro |
|
Návrat nahoru |
|
 |
igor

Založen: 28. 07. 2007 Příspěvky: 196
|
Zaslal: 9. květen 2010, 13:53:36 Předmět: |
|
|
Vůbec nevím, jak to přesně vypadá v Q3 .bsp, tak jenom stručně jak je to s tou rovinou.
Rovinu v 3D jednoznačně určují už ty 3 vertexy (pokud neleží na přímce). Ty zřejmě chceš dostat tzv. obecnou rovnici roviny, která se hodí pro testování bodů s touto rovinou:
px*nx + py*ny + pz*nz + d = 0
jinak zapsáno
dot(p,n) + d = 0
Kde n je normála roviny, d je určitý posun od počátku souřadnicového systému, p je testovaný bod (všechny body, pro které je pravá strana nulová, leží v rovině, jinak leží před/za ní podle znaménka a jde z toho spočítat i vzdálenost). Doporučuji si k tomu něco najít nejlépe s obrázky, kde je vidět, proč to tak je.
d spočítáš tak, že do rovnice dosadíš nějaký bod, o kterém víš, že v rovině leží - např ten tvůj vertex0. Takže ve tvé verzi výpočtu máš naopak znaménko:
d = - dot(normala,vertex0)
(jinak je možné, že to v tom .bsp ukládají naopak např. kvůli tomu, že pak porovnávají dot(p,n) s -d místo (dot(p,n) + d) s nulou) |
|
Návrat nahoru |
|
 |
|
|
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