草庐IT

conservative

全部标签

c++ - 写入 gl_FragDepth,同时仍然执行深度预测试

给定深度预渲染渲染器,我有给定片段可能包含的最小深度值-因此,考虑任何比指示更远的片段是没有意义的。现在,我有一个写入gl_FragDepth的着色器,但保证写入的值大于或等于其多边形面的深度值。我如何仍然执行深度预测试(即,如果片段深度比缓冲区值更远,则在不执行着色器的情况下丢弃),但允许我写入一个不同于(大于)插值面深度的值(如果它通过了预测试)测试? 最佳答案 从OpenGL4.2(GLSL4.20)开始,您正在寻找的功能可作为gl_FragDepth上的布局限定符使用。它允许您指定您将如何修改片段着色器中的深度输出的意图。例

java - 二维球碰撞问题 : no conservation of energy

我正在尝试编写一个简单的物理模拟,其中具有不同半径和质量的球在完美弹性和无摩擦的环境中弹跳。我按照以下资源编写了自己的代码:http://www.vobarian.com/collisions/2dcollisions2.pdf我还测试了这里的代码:BalltoBallCollision-DetectionandHandling问题已编辑在RickGoldstein和Ralph的帮助下,我的代码可以正常工作(有一个错字……)。非常感谢你的帮助。但是,我仍然对为什么其他算法对我不起作用感到困惑。球在正确的方向反弹,但系统的总能量永远不会守恒。速度越来越快,直到球开始在屏幕上的静止位置闪烁