そこに問題はありません。この問題の経験がある人はいますか? なにか提案を?ヒント?コード?論文?最初の変換を適用すると、空間の座標が変わるだけで、次の変換が適切に適用されていないと思います。
これが私のiOSコードです:
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
glClear(GL_COLOR_BUFFER_BIT);
GLKMatrixStackPush(_obStack);
GLKMatrixStackRotate(_obStack,
GLKMathDegreesToRadians(_obAngleX),
0.0f, 1.0f, 0.0f);
GLKMatrixStackRotate(_obStack,
GLKMathDegreesToRadians(_obAngleY),
1.0f, 0.0f, 0.0f);
GLKMatrixStackScale(_obStack,
_obScaleFactor,
_obScaleFactor,
_obScaleFactor);
self.obEffect.transform.modelviewMatrix = GLKMatrixStackGetMatrix4(_obStack);
// Prepare effect
[self.obEffect prepareToDraw];
// Draw Model
glDrawArrays(GL_TRIANGLES, 0, panoramaVertices);
GLKMatrixStackPop(_obStack);
self.obEffect.transform.modelviewMatrix = GLKMatrixStackGetMatrix4(_obStack);
}
これは私のAndroidコードです:
public void onDrawFrame(GL10 arGl) {
arGl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
arGl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
arGl.glPushMatrix();
arGl.glRotatef(obAngleY, 1.0f, 0.0f, 0.0f);
arGl.glRotatef(obAngleX, 0.0f, 1.0f, 0.0f);
arGl.glScalef(obScaleFactor, obScaleFactor, obScaleFactor);
if (obModel != null) {
obModel.draw(arGl);
}
arGl.glPopMatrix();
}