c++ - 仅对某些对象透明?
问题描述
我设法得到一个透明的立方体
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
在 shader.frag 中:
gl_FragColor = vec4(texture2D(TextureMap_uniform, uv).xyz,0.5);
但现在我希望我在透明立方体上方移动的实体模型是不透明的(透明度目前应用于所有内容)。谁能指出我正确的方向?
解决方案
你用的是同一个着色器吗?如果是,那么您需要将每个对象的不透明度信息传递给您的着色器。一种简单的方法是使用统一变量。
查看这些链接:
https://www.khronos.org/opengl/wiki/Uniform_(GLSL) https://www.khronos.org/opengl/wiki/GLAPI/glUniform
推荐阅读
- java - 无法按源启动 JIRA
- apache - .htaccess 重写条件/规则并隐藏 url 参数
- angular - 如何在 mat-expansion-panel 上应用所需的检查
- sql - 如何在一个查询中对多个 ID 执行更新和插入
- e-commerce - 在 Razorpay 上进行交易时,用户没有被重定向到他们各自的银行账户页面?
- c# - AutoResetEvent 何时重置?
- mongodb - 索引这么多MongoDB数据或更改方案的有效方法?
- java - springboot:将对象数组写入数据库
- sql - 在具有不同列的oracle中枢轴
- twig - 在 TWIG 中包含标签不起作用,运行为空白