I was reading about the side effects of using "discard" in OpenGL's fragment shader, such as early testing being disabled. But I could not find any alternative for alpha-testing until I stumbled upon glAlphaFunc, which seems to be deprecated since OpenGL 3.0. However I could not find any documentation on why it has been removed, and there seems to be no alternative to "discard".
What happened to glAlphaFunc? Why was it deprecated?
1.6k views Asked by Type Definition At
1
There are 1 answers
Related Questions in OPENGL
- How to fix "Access violation executing location" when using GLFW and GLAD
- getting Access violation writing location when calling glDrawElements caused by shader
- Experimenting with GLFW library: window boundary problem and normalized coordinates
- OpenGL Framebuffer/FBO RTT subpixel movement discrepancy
- Why isn't my glfw window showing anything?
- How can glPushMatrix affect the rotation of an object around a rotating object?
- g++ / vscode apparently cannot see my src folder? "cc1plus.exe: fatal error: src/glad.c No such file or directory"
- Does addition-assignment cause dependency chain in GLSL?
- Compiling C++ program with Opengl and Glut in windows
- Using Silk.NET in WinForms
- What happens when rendering an OpenGL buffer that has been padded with NULL (or another value)?
- How can I make a sphere follow an eight-like path in Python using OpenGL?
- OpenGL only rendering second triangle, first triangle not visible
- OpenGL shows black texture on quad
- My Visual Studio 2022 consistently gives me errors saying that the GLchar variable type is undefined
Related Questions in OPENGL-3
- What is the glVertexAttribPointer "stride" argument?
- Does GL_DYNAMIC_DRAW make a difference when only using glBufferData?
- Trouble porting some GL line strips to core profile
- I have an error loading an image with STB image
- In what way is WebGL2 immediate compared to retained mode OpenGL3?
- Why are the frameSwapped and aboutToCompose signals of QOpenGLWidget emitted almost simultaneously?
- Passing a big texture to a GLSL shader?
- OpenGL Triange demo shows blank window
- OpenGL Geometry Shader rendering triangle instead of square from a point
- How to rotate a matrix along two axis without affecting the third axis at all?
- How to move 2D multiple drawn shapes (Squares and Rectanagles) seperately in OpenGl?
- how to implement 3D model rendering By different indexes?
- Why is my OpenGL code producing a black screen?
- Beryllium crate does not link with project, linking with cc fails
- From C matrix to texture in modern OpenGL?
Related Questions in OPENGL-4
- My Visual Studio 2022 consistently gives me errors saying that the GLchar variable type is undefined
- How do I get glBindTextureUnit() to work?
- OpenGL shadow acne visual error without shadows implemented
- sampler2D in compute shaders, compilation errors
- OpenGL shader uniform is not recognized in the code
- Buffer read-back working depends on order of bind/map with DSA
- What happens to buffer attached to VAO via glVertexArrayVertexBuffer after deleting buffer?
- glPolygonOffset and backfaces
- Non-gradual color change in OpenGL
- OpenGL (with OpenTK) texture doesn't render (not even a white rect)
- OpenGL glProam link failed in windows: error C5145: must write to gl_Position
- How Can I Render Round Vertices Using OpenGL 4.0?
- use UV and normal indices in OpenTK
- Passing a big texture to a GLSL shader?
- Strided buffer copy for modifying interleaved vertex attributes
Related Questions in OPENGL-2.0
- shader in C++ opengl2.1 doesn't compile in arch linux
- OpenGL DrawArrays with Color
- Is it possible to write vertex array code that's portable between OpenGL 2.x and 3.x?
- What happened to glAlphaFunc? Why was it deprecated?
- OpenGL Texture cause ImGUI windows to be permanently out of focus
- X-Y-Distance from camera to object in vertex shader
- Framebuffer and Textures Non Power Of Two
- Drawing to multiple buffers simultaneously and rendering each buffer Individually to display
- OpenGL - Loading Multiple Images to Textures
- GLSL - Gaussian Blur Artifact Issue
- Resizing window using SDL and OpenGL
- OpenGL GLfloat not recognized Java
- Open GL2.0 library codes
- How to fix loading texture error?
- How to replace 'gluOrtho2d' in a Qt app
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Alpha testing has (on all implementations I know of) never been done in the early testing stage. I don't think it is even possible there because before the fragment shader has been executed there is no concept of a color or a alpha channel.
In addition, enabling alpha testing usually disables early depth testing (see here), which means that it behaves the same as when discard is used in the shader.
I cannot directly answer why
glAlphaFunchas been removed, but since there is no real difference betweendiscardand alpha testing, it's not really a problem.