簡體   English   中英

一些IOS設備中的樣本GL_DEPTH24_STENCIL8深度紋理錯誤

[英]sample GL_DEPTH24_STENCIL8 depth texture error in some IOS device

我有一個深度紋理GL_DEPTH24_STENCIL8 (或GL_DEPTH_COMPONENT24 ),我可以在某些設備(iPhone5s iPad1)上正確采樣該紋理,但是會因某些無效像素而失敗。 以下是綁定的gpu紋理(深度)和xcode捕獲的格式信息:

綁定深度紋理 在此處輸入圖片說明

請注意,我已將值裁剪為[0.999,1],因為同質深度大部分位於集合中。 我正在采樣紋理並將其值也裁剪到我的着色器中。

uniform sampler2D tex0;
varying mediump vec2 TexCoord0;
void ps_main()
{
  float bias = 0.0;
  lowp vec4 zb = texture2D(tex0, TexCoord0, bias);
  const mediump float mag = 20.0;
  mediump float linearz = (zb - 0.999) / (1.0 - 0.999)
  gl_FragColor = vec4(linearz, linearz, linearz, 1.0);
}

並且此着色器在上述設備上給出了錯誤的結果: 在此處輸入圖片說明

設備和驅動程序信息為:

Driver: OpenGLES2
Description: Apple A8 GPU
Version: OpenGL ES 2.0 Apple A8 GPU - 77.14
Vendor: Apple Inc.
Width: 2048, Height: 1536, BitDepth: 32

這個問題有什么線索嗎? 還是其他一些調試建議?

您所依賴的精度超出了API保證的精度。 例如,變量zblowp ,它只能保證256個精度中的1個部分,但是您嘗試在計算linearz的值時使用至少需要linearz計算中。

嘗試將精度提高到highp以超過臨界精度閾值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM