誰かがこの拡張機能を正常に使用しましたか?Khronosの仕様はここで読むことができます:NV_depth_nonlinearextension
私はEGL設定を選択して拡張機能を正常にチェックしました:
public class CustomEGLConfigChooser implements EGLConfigChooser {
private static final int EGL_DEPTH_ENCODING_NV = 0x30E2;
private static final int EGL_DEPTH_ENCODING_NONLINEAR_NV = 0x30E3;
private int[] mValue = new int[1];
public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
// request configs
EGLConfig[] configs = egl.eglChooseConfig(...);
// ...
EGLConfig bestConfig = null;
for(EGLConfig config : configs){
// check for EGL_DEPTH_ENCODING_NV
egl.eglGetConfigAttrib(display, config, EGL_DEPTH_ENCODING_NV, 0);
int hasDepthNonLinear = findConfigAttrib(egl, display, config, EGL_DEPTH_ENCODING_NV, 0);
if(hasDepthNonLinear == EGL_DEPTH_ENCODING_NONLINEAR_NV) {
// what to do now ???...
}
}
return bestConfig;
}
private int findConfigAttrib (EGL10 egl, EGLDisplay display, EGLConfig config, int attribute, int defaultValue) {
if (egl.eglGetConfigAttrib(display, config, attribute, mValue)) {
return mValue[0];
}
return defaultValue;
}
}
しかし、非線形深度拡張をどのように使用しますか?使用する必要があります:
glBindRenderbuffer(...);
glRenderbufferStorage(...);