dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

API izvēle
Goto page Previous  1, 2, 3, 4, 5  Next
 
dev.gamez.lv Forum Index -> fleims/offtopics/draza
View previous topic :: View next topic  
Author Message
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Fri Jun 12, 2009 8:54 pm    Post subject:

Labi, labi, whatever, tas tāpat bija ļoti novienkāršots piemērs.
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Jun 15, 2009 8:46 am    Post subject:

Un tagad, cienījamie engine lietotāji - neizmantojot ne DirectX, ne OpenGL funkcijas lūdzams izveidojiet Picking funkciju.

Tiek doti: CML un Eigen freimworki (engine te nav pat tuvumā).

Ātrāk tiešām pats uzkodēšu c++, papētot inversās matricas matemātisko daļu.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Jun 15, 2009 9:32 am    Post subject:

Quote:
lūdzams izveidojiet Picking funkciju.

Vairumā dziņu tāda jau ir iebūvēta.
Irrlichtā paraugprogrammās ir viss picking kods, un tas ir "ļoti sarežģīts"..
Tur var pickot arī ar bounding boxu (un neko vairāk šim projektam nevajadzētu). Un tas, cik sapratu (neesmu pats Irrlicht lietojis, tik skatos uz kodu), ir ļoti "grūti" - jāuztaisa custom scene node, kurš saturēs tikai bounding boxu. Pret to jāpick'o..
ISceneNode* CSceneCollisionManager::getSceneNodeFromRayBB(core::line3d<f32> ray, s32 idBitMask=0, bool bNoDebugObjects = false);
Bet nu ja esi kļuvis eksperts pickingā jau 5 minūtēs, vai tev patīk visu vairākas reizes pārrakstīt, laipni lūddzu pamēģināt pašam un skatīties, kā izdodas.
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Jun 15, 2009 9:55 am    Post subject:

Diemžēl tās daļas (da jebkādas) ir tā iepītas engine struktūrā, ka izkastrēt būs problēmas. Laughing
Laigan neesmu manījis nevienā enginē kaut ko no picking.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bulkano



Joined: 22 Apr 2009
Posts: 39

PostPosted: Mon Jun 15, 2009 10:04 am    Post subject:

Eddy you made my day :D

Ar katru dienu arvein spožākas un spožākas pērles birst.
Back to top
View user's profile
DeRatizators



Joined: 27 Apr 2006
Posts: 492

PostPosted: Mon Jun 15, 2009 10:15 am    Post subject:

EDDY wrote:
Diemžēl tās daļas (da jebkādas) ir tā iepītas engine struktūrā, ka izkastrēt būs problēmas. Laughing
Laigan neesmu manījis nevienā enginē kaut ko no picking.


Ko tu tur taisies kastrēt ?

Nezinu kas tādi Eigen un CML, bet, piemēram, picking kods no C4Engine wiki izskatās pilnīgi normāls. Nekāda dziņa kastrēšana nav vajadzīga, lol:


Code:
CombatWorld *world = static_cast<CombatWorld*>(TheWorldMgr->GetWorld());
   if(world)
   {
      RTSCamera *cam = world->GetNavCamera();
      Point3D camPosition = cam->GetNodePosition();
      Point3D curFocus = cam->GetCurrentFocus();

      CollisionData data;
      CollisionState state = kCollisionStateNone;
      
      Ray ray;
      Point2D cursorPoint = world->GetCursorPosition();
      cam->GetWorldRayFromPoint(Point(cursorPoint.x, cursorPoint.y), &ray);

      float distance = Magnitude(camPosition - curFocus);
      Point3D p1 = ray.origin;
      Point3D p2 = ray.origin + ray.direction * ray.tmax;

      // Test against all geometry
      state = world->QueryWorld(p1, p2, 0.0f, 0, &data);

      if(state != kCollisionStateNone)
      {
                        //geo ir tavs objekts
         Geometry *geo = data.geometry;
         
      }
   }

_________________
Any PANCAKE has to be long and thin and short and fat. Not to mention being an excellent insulator and a superb conductor.
Back to top
View user's profile
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Jun 15, 2009 10:55 am    Post subject:

Dziņa kastrēšana - izņemt no dziņa darbojošās funkcijas tādā veidā, lai tās varētu iepīt savā projektā. Labi, mazliet nepiedienīgi ...

Nu tavs piemērs nepārliecināja galīgi.
Kas ir GetCurrentFocus();, GetNodePosition(); un pārējie?
Nemaz nerunājot par QueryWorld(p1, p2, 0.0f, 0, &data); Surprised

Tie ir piesaistīti dzinim, tāpēc nekādi tas piemērs nevar palīdzēt.
Ja nu vienīgi es pēkšņi nenopērku C4 dzini .. Laughing
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Jun 15, 2009 11:38 am    Post subject:

EDDY wrote:
Kas ir GetCurrentFocus();, GetNodePosition(); un pārējie?
Nemaz nerunājot par QueryWorld(p1, p2, 0.0f, 0, &data); :o

Uz tādiem jautājumiem atbildi sniedz 4 burti RTFM.
Kas tavuprāt ir std:vector? Kas ir glBindBufferBase? ...
Kas tu domā zināšanas no zila gaisa rodas? Loģiski, ka tās kaut kur jāiemācās, jāizlasa, jānoklausās.
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Jun 15, 2009 11:47 am    Post subject:

Quote:
Tie ir piesaistīti dzinim, tāpēc nekādi tas piemērs nevar palīdzēt.

Nu ja tas tev nepatīk, pieliec savam projektam visus pasaules dziņus, kurus var un nowrapo funkciju tā, lai strādā uz visiem..
Tiešām nesaproti, ka, lietojot dzini, tu to lieto? Nevis kastrē vai vēl kā. Viss spēles kods būs vai nu saistīts ar dzini, vai ar spēli, vai ar citiem library'iem, kurus būsi pielicis. Nav tur nekas jāčakarē, vienkārši uztaisi jaunu projektu, pieliec dziņa lib-failus, headerus un sāc kodēt spēli!

GetNodePosition() - objekta atrašanās vieta spēles pasaulē, kodā nav lietots.
GetCurrentFocus() - laikam tālākais punkts, ko kamera redz (un uz kuru skatās), bet tas kodā nav lietots.
(izņemot attāluma aprēķināšanu, bet to attālumu tur arī nelieto)
QueryWorld - svarīgākā funkcija - pārbauda pasaules objektu sadursmes ar nogriezni..

Un, kamēr nesapratīsi, cik dzinī tas ir vienkārši, skaties uz piemēru.. Very Happy
Un Irrlicht ir bez maksas. Manuprāt tavām vajadzībām būs ļoti OK.
Ja tik ļoti grafiku patīk veidot, varbūt vēl uz Unity apskaties.
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Jun 15, 2009 12:37 pm    Post subject:

bubu wrote:
EDDY wrote:
Kas ir GetCurrentFocus();, GetNodePosition(); un pārējie?
Nemaz nerunājot par QueryWorld(p1, p2, 0.0f, 0, &data); Surprised

Uz tādiem jautājumiem atbildi sniedz 4 burti RTFM.


Kāda man daļa gar manuāli, ja man nav C4 dzinis?
Ai_ta labi, miers ar jums.

Kaut vai papētam to cml - matrix::inverse();
Tā nav analogs DirectX-am, jo nepieciešamas divas matricas=ienākošā un izejošā.
Bet, protams, var rakstīt
Code:
Pseidocode:  Matrix_44 M = matrix::inverse(N);

Tikai nezkāpēc DirectX nepatīk šī matrica.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday


Last edited by EDDY on Mon Jun 15, 2009 1:02 pm; edited 1 time in total
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Jun 15, 2009 1:02 pm    Post subject:

Ja domāji D3DXMatrixInverse funkciju, tad ir gan.
Jo ar abu funkciju palīdzību var paņemt vienu matricu un uztaisīt jebkuru matricu par pirmās inverso.
Neviens netraucē rakstīt šādi: D3DXMatrixInverse( &m, &m );

P.S. kas tur DirectX'am (precīzāk būtu Direct3D[X]) nepatīk?
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Jun 15, 2009 1:04 pm    Post subject:

Pie tā visa, ir divi matricu veidi, bet abi strīdās ar DirectX.
Tā kā atliek pašam izgudrot velosipēdu, vai arī pielikt matricas transformāciju ekrānam (izšķirtspējai) un sašūnot 81 lauciņus ar if (x>.... && x<...., e.t.c.).
Vispār nesaprotu, kāpēc tam manam picking piemēram vajadzētu inverso matricu. Kas tur ir jāapgriež?

DirectX-ā nepatīk tā HLSL valoda. Vot, ja varētu iekš DirectX ielikt GLSL ....
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Jun 15, 2009 1:14 pm    Post subject:

Quote:
Vispār nesaprotu, kāpēc tam manam picking piemēram vajadzētu inverso matricu. Kas tur ir jāapgriež?

Pašam vien jādebugo. Piedod, tieši šādu gadījumu dēļ savu kristāla bumbu saplēsu.. Very Happy
Quote:
Vot, ja varētu iekš DirectX ielikt GLSL ....

Lūdzu, uztaisi GLSL šeideru kompilētāju priekš Direct3D.
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Mon Jun 15, 2009 1:23 pm    Post subject:

Nu, un kāpēc gan nevarētu ielikt DirectX-ā funkcijas no OpenGL?
Hendliem tak nav nekāda sakara ar API, vai ir?

Arī globāli šī problēma risinās:

http://newsgroups.derkeiler.com/Archive/Comp/comp.graphics.api.opengl/2008-11/msg00155.html

Tiešām, kāpēc gan neuztaisīt inverso MODELVIEW matricu uz glu funkcijām?

http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=241421
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Mon Jun 15, 2009 2:30 pm    Post subject:

LOL! Ar katru postu, arvien lielāks cirks ar tevi, EDDY.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> fleims/offtopics/draza All times are GMT + 2 Hours
Goto page Previous  1, 2, 3, 4, 5  Next
Page 3 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group