Wednesday, 30 May 2012

3D rotate for RenderScript - rsMatrixRotate()

Refer to the RenderScript.rs in the example "Perform transform of Translate and Rotate on RenderScript", the rsMatrixRotate() function define the rotation.
void rsMatrixRotate(rs_matrix4x4 *m, float rot, float x, float y, float z)

rsMatrixRotate() modified


Modify RenderScript.rs of last exercise "Draw circle in Android RenderScript".
//declare RendorScript Version
#pragma version(1)

//declare package
#pragma rs java_package_name(com.exercise.AndroidRenderScript);

//include graphics library
#include "rs_graphics.rsh"

rs_mesh my_rs_mesh;

float rotation;

void init(){
rotation = 0.0f;
}

int root(){
//set background color
rsgClearColor(0.0f, 0.0f, 0.0f, 0.0f);

//Transform something
rs_matrix4x4 matrix;
rsMatrixLoadIdentity(&matrix);
rsMatrixTranslate(&matrix, 100.0f, 100.0f, 0.0f);
rsMatrixRotate(&matrix, rotation++, 1.0f, 1.0f, 1.0f);
rsgProgramVertexLoadModelMatrix(&matrix);

//draw something
rsgDrawMesh(my_rs_mesh);

//repeat 20ms
return 20;
}


No comments:

Post a Comment