2012-12-28 28 views
8

पर मैट्रिक्स ट्रांसफॉर्मेशन लागू करें मेरे पास एक मॉडल मैट्रिक्स है कि मैं अपनी दुनिया में जाल की स्थिति के लिए ट्रैक रख रहा हूं। glRotate() और glTranslate() पर प्रत्येक कॉल के साथ मेरे पास modelMatrix.rotate() और modelMatrix.translate() पर एक उचित कॉल है जो ठीक से काम कर रहा है।बाउंडिंगबॉक्स

अब मुझे अपने प्रत्येक मॉडल से जुड़े बाउंडिंग बॉक्स को अपडेट करने की आवश्यकता है। मैं libGDX ढांचे में काम कर रहा हूं और BoundingBox वर्ग found here में, एक विधि mul() है जो मुझे बाध्यकारी बॉक्स में मैट्रिक्स लागू करने की अनुमति देनी चाहिए लेकिन मान सही ढंग से अपडेट नहीं किए जा रहे हैं और मुझे लगता है कि यह वही तरीका हो सकता है इसे लागू करने की कोशिश कर रहा है। कोई विचार?

gl.glPushMatrix(); 

// Set the model matrix to the identity matrix 
modelMatrix.idt(); 

// Update the orbit value of this model 
orbit = (orbit + ORBIT_SPEED * delta) % 360; 
gl.glRotatef(orbit, 1.0f, 1.0f, 0); 

// Update the model matrix rotation 
modelMatrix.rotate(1.0f, 1.0f, 0, orbit); 

// Move the model to it's specified radius 
gl.glTranslatef(0, 0, -ORBIT_DISTANCE); 

// Update the model matrix translation 
modelMatrix.translate(0, 0, -ORBIT_DISTANCE); 

// Update the bounding box 
boundingBox.mul(modelMatrix); 

if (GameState.DEBUG) 
{ 
    renderBoundingBox(gl, delta); 
} 

// Bind the texture and draw 
texture.bind(); 
mesh.render(GL10.GL_TRIANGLES); 

gl.glPopMatrix(); 
+0

बस यह सुनिश्चित करने के लिए, क्या आप अपना बाउंडिंग बॉक्स खींचने से पहले एक पहचान लोड कर रहे हैं? –

+0

नहीं, मेरे पास मॉडल और बाउंडिंग बॉक्स खींचने के बाद तक 'glLoadIdentity()' तक कोई कॉल नहीं है। – DRiFTy

+2

मुझे लगता है कि आपको चाहिए। क्योंकि आप अपने बीबी को 2 बार बदल रहे हैं। रेंडरबैब के अंदर एक पुश/पॉप करें। प्रक्षेपण रखें। यदि आप परीक्षणों का परीक्षण करना चाहते हैं तो पहचान लोड न करें और mul() को कॉल न करें। इस तरह आप टी मॉडल के रूप में उसी मॉडल के साथ टी बीबी ड्राइंग करेंगे। कार्य करना चाहिए। –

उत्तर

0

आदेश है कि आव्यूह गुणन गणना की जाती है महत्वपूर्ण है:

यहाँ मेरी प्रासंगिक कोड है। क्या आप इसके बजाय मॉडलमैट्रिक्स * बॉक्स कर सकते हैं। मुझे लगता है कि यह मुद्दा है।