Sabtu, 08 Mei 2010

Tutorial Render To Texture dari Delta 3D


Terkadang kita ingin me-render image menjadi tekstur. Hal ini umumnya digunakan dalam menerapkan post process filters atau untuk membuat picture-in-picture dengan perspektif yang berbeda. Contoh ini akan mencakup penerapan RTT dalam pembuatan gambar dalam gambar (picture in picture). Contoh ini sangat menerapkan OSG. Untuk contoh yang lebih up-to-date dalam penggunaan Delta3D, silahkan lihat contoh program Delta3D berjudul "testPreRender" (2/19/09).
Untuk pengubahan ukuran, kita akan mulai dengan menentukan dimensi PIP (picture in picture).
float width  = screenWidth * 0.35f;
float height = screenHeight * 0.35f;

Kemudian, kita akan membuat tekstur yang akan di render.
// Create the texture to render to
osg::Texture2D* renderTexture = new osg::Texture2D;
renderTexture->setTextureSize(screenWidth, screenHeight);
renderTexture->setInternalFormat(GL_RGBA);
renderTexture->setFilter(osg::Texture2D::MIN_FILTER, osg::Texture2D::LINEAR);
renderTexture->setFilter(osg::Texture2D::MAG_FILTER, osg::Texture2D::LINEAR);