depth-buffer

    1熱度

    1回答

    在我的延遲渲染器中,深度緩衝區保存的值範圍從約0.9700到1.0000。我通過在給定深度範圍內繪製黑色像素來發現這一點。這是我使用的着色器代碼。 bool inrange(in float position) { float z = texture2D(depth, coord).r; return abs(position - z) < 0.0001; } void

    1熱度

    1回答

    我一直在閱讀關於從深度緩衝區重構世界空間中片段的位置,但我正在考慮將位置存儲在高精度三通道位置緩衝區中。這樣做會比從深度緩衝區解壓縮位置更快嗎?從深度重建位置的成本是多少?

    1熱度

    2回答

    我正在爲OpenGL ES 2.0,iOS開發一個簡單的3D應用程序。 我想要做的是我想在片段着色器的深度緩衝區中獲取場景的深度值。 所以,我創建深度緩衝器作爲2D紋理 GLuint texture; glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glTexImage2D(GL_TEXTURE_2D, 0

    5熱度

    1回答

    我想以一種非正統的方式使用深度緩衝區,我對所有規範化,縮放以及在那裏發生的事情感到困惑。 我的計劃是實施來自AMD的一些傢伙(link to pdf)的空間哈希算法。 dr-version:通過將3D頂點離散化爲(平面2D)深度紋理數組,將深度設置爲VertexID,從而加快最近鄰居搜索的速度。使用深度紋理的原因是,有一些智能深度測試甚至可以按照排序順序得到結果,但這不重要。 我的問題是,Vert

    4熱度

    1回答

    作爲DirectX noob,我試圖圍繞深度緩衝區包裹頭部,特別是像素着色器如何被調用以遮蔽像素。 據我所知,光柵化器爲覆蓋繪製原始圖像的每個像素調用像素着色器,然後在輸出合併階段,輸出合併器檢查深度緩衝區並丟棄,寫入或混合像素在後臺緩衝區中。 這似乎很浪費,雖然如果我在一個非常複雜的前面渲染一個簡單的不透明對象,所以看起來有必要讓光柵化器檢查深度圖在甚至調用複雜對象的像素着色器之前。 做研究我發

    2熱度

    1回答

    下面是來自同一視點(虛擬相機)的同一3D場景的2張圖像,有無背視。圖像不描繪最終的網格,而是描繪深度緩衝區的內容。 沒有BackCulling glDisable(GL_CULL_FACE); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); glEnable(GL_DEPTH_TEST); glDepthMask(GL_TRUE); glDepthFu

    4熱度

    1回答

    我試圖實現延期着色/照明。爲了減少我使用的緩衝區的數量/大小,我希望以後使用深度紋理重建世界位置。 我通過將像素座標與投影矩陣的逆矩陣和相機矩陣的逆矩陣相乘來完成此操作。這類作品,但是位置有點偏離。下面是用採樣世界位置的紋理的絕對差: 作爲參考,這是我在第二遍片段着色器使用的代碼: vec2 screenPosition_texture = vec2((gl_FragCoord.x)/WIDTH,

    0熱度

    1回答

    我正嘗試渲染幀緩衝區中的所有內容。 所以我做了深度紋理和顏色紋理附着幀緩衝區如下所示:http://www.opengl.org/wiki/Framebuffer_Object_Examples#Color_texture.2C_Depth_texture 但如果啓用GL_DEPTH_TEST沒有呈現。 我在做什麼錯? 整個代碼太長... 幀緩衝類: class FrameBuffer {

    0熱度

    1回答

    我正在使用個性化的攝影投影矩陣來定位我的物體,這些物體都是平坦的小精靈。問題是沒有辦法從它們的位置線性地推導投影的深度:相反,它是它們的拓撲排序的結果。我怎樣才能從他們的位置獨立設置他們的深度?

    1熱度

    1回答

    我正在繪製一個相當簡單的僅包含矩形的2D場景。我有一個FloatBuffer,其中爲每個頂點放置了X,Y,Z,R,G,B,A,U和V數據。 我使用glDrawArrays和GL_TRIANGLE_STRIP繪製,保持矩形與退化頂點分離。 爲了便於使用多個紋理,我爲每個紋理的繪製調用保留單獨的浮點數組。紋理綁定,float數組放入FloatBuffer中,然後繪製。 然後綁定下一個紋理,並繼續,直到