1. 程式人生 > >OSG初始化深度貼圖的程式碼

OSG初始化深度貼圖的程式碼

物體顯示取樣貼圖

//原本的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