徐郯 2023-02-21 12:40 采纳率: 100%
浏览 39
已结题

gl_PointCoord始终是0


fshader_src = """
        #version 330 core
        void main() { 
            //gl_PointCoord是内置变量,表示顶点坐标 gl_PointCoord的最大值是(1.0,1.0)
            //gl_FragColor 也是内置变量,表示顶点坐标对应的像素的颜色值
            //计算顶点坐标到指定点(0.5,0.5)之间的距离,
            float r = distance(gl_PointCoord, vec2(0.5, 0.5));
            //根据距离设置片元
            
            if(r < 0.5){
                // 方形区域片元距离几何中心半径小于0.5,像素颜色设置红色
                gl_FragColor = vec4(1.0,0.0,0.0,1.0);
            }else {
                // 方形区域距离几何中心半径大于等于0.5的片元剪裁舍弃掉:
                discard;
            }
        } 
    """

你好,我在python里面尝试编写着色器来显示点,但是却发现gl_PointCoord的值始终是0,0,我查询了好久也没有发现问题在哪,希望您可以帮帮我。

  • 写回答

3条回答 默认 最新

  • 天元浪子 Python领域优质创作者 2023-02-21 13:25
    关注

    看起来这段GLSL代码并没有问题。你是如何确定片元纹理始终不变的呢?渲染管线在渲染片元时针对每个片元都有一个不同的gl_PointCoord,除非顶点只有1个片元————没有开启点精灵(PointSprite)模式,或者视窗缩小到很小的情况下,才会出现这种情况。我猜你的问题是没有开启点精灵模式,或者忘记设置点的size了吧?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月1日
  • 已采纳回答 2月21日
  • 创建了问题 2月21日

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算