徐郯 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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度