OSG初始化深度貼圖的程式碼
阿新 • • 發佈:2019-04-28
//原本的colorTexture是顏色取樣,沒法顯示深度,這裡換成深度貼圖 colorTexture = new Texture2D; colorTexture->setTextureSize(width, height); colorTexture->setSourceFormat(GL_DEPTH_COMPONENT); colorTexture->setSourceType(GL_FLOAT); colorTexture->setInternalFormat(GL_DEPTH_COMPONENT24); colorTexture->setFilter(Texture2D::MIN_FILTER, Texture2D::NEAREST); colorTexture->setFilter(Texture2D::MAG_FILTER, Texture2D::NEAREST); colorTexture->setWrap(Texture::WRAP_S, Texture::CLAMP_TO_EDGE); colorTexture->setWrap(Texture::WRAP_T, Texture::CLAMP_TO_EDGE);
// 在快取到貼圖時, 像機宣告快取的內容是深度, 但顏色也是可以的
cameraLight->attach(Camera::DEPTH_BUFFER/*Arcadia test 2019-04-11 COLOR_BUFFER或DEPTH_BUFFER都可以*/
, colorTexture.get(), 0, 0, fals