glsl着色器学习(十)缩放

对二维图形进行缩放,需要用到顶点着色器,顶点着色器经过矩阵变换,会将模型空间最终转换成裁剪空间。下面就来操作矩阵

这里需要用到一个库glMatrix。

首先修改顶点着色器

<script id="vertex-shader-2d" type="x-shader/x-vertex">attribute vec4 a_position;uniform mat4 u_matrix;void main() {gl_Position = u_matrix * a_position;}
</script>

定义了一个统一变量4x4矩阵,用来接收应用程序传递过来的矩阵数据

获取变量在着色器程序中的位置

 const matrixUniformLocation = gl.getUniformLocation(program, 'u_matrix');

设置矩阵

// 引入mat4
import { mat4 } from './glmatrix/esm/index.js';const scaleMatrix = mat4.create();
// 缩放矩阵[1,1,1]分别对应X,Y,Z三个分量
mat4.fromScaling(scaleMatrix, [1, 1, 1]);gl.uniformMatrix4fv(matrixUniformLocation, false, scaleMatrix);

不出意外的话,没啥变化,因为设置的矩阵是[1,1,1],将[1,1,1]改成[2,1,1],会发现图像X轴方向放大了2倍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1523815.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

为何科技达人都爱用Windows Disk Clear?数据安全有保障!

前言 “在数字时代&#xff0c;数据即力量&#xff0c;而其安全则是力量的基石。”这句箴言恰如其分地描绘了当今社会对数据安全的迫切需求。正是在这样的科技浪潮中&#xff0c;一款名为“Windows Disk Clear”的软件如同璀璨星辰&#xff0c;照亮了数据安全领域的天空。 它…

【DSP】无法在线仿真无法进入main()函数

DSP无法在线仿真无法进入main()函数 1.问题描述 ​ 接手前人的DSP代码&#xff0c;硬件平台是DSP C6701&#xff0c;软件IDE是CCS 12.3.0。仿真器版本是XDS 560V2。 ​ 在进行在线仿真时&#xff0c;经常出现“伪在线”的情况。简单来说&#xff0c;正常的在线过程&#xff…

【数据结构与算法 | 搜索二叉树篇 力扣篇】力扣530

1. 力扣530&#xff1a;二叉搜索树的最小绝对差 1.1 题目&#xff1a; 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,…

QT5记录 QHBoxLayout ScrollArea导致QLabel重新计算位置导致内容显示不全

先给QLabel 固定高度 # 这里让背景框适配聊天框font_metrics QFontMetrics(font)rect font_metrics.boundingRect(QRect(0, 0, self.width(), 1920), Qt.TextFlag.TextWordWrap,text)newWidth rect.width() 40if rect.width() < 800:self.setMaximumWidth(newWidth)self…

python中pip源配置

文章目录 1、前言2、pip下载源配置 1、前言 conda环境的源配置&#xff0c;相关博客有很多&#xff0c;这里不再赘述。在我使用梯子后&#xff0c;使用pip进行库安装&#xff0c;总是出现错误情况&#xff0c;如下所示&#xff1a; 2、pip下载源配置 因此&#xff0c;在这里进…

多模态:DetCLIPv3解析

文章目录 前言一、介绍二、方法2. Open vocabulary detector2.1 encoder2.2 decoder 3. Object captioner 三、数据工程1. Auto-annotation data pipeline 四、训练策略五、实验总结 前言 目前多模态目标检测逐渐成为检测领域的主要发力方向&#xff0c;从最初的检测大模型gro…

这个桌面插件真的酷!该有的都有了!改造桌面必备神器

这个桌面插件真的酷&#xff01;该有的都有了&#xff01;改造桌面必备神器。一个好用的桌面插件可以给我们提供很多的方便&#xff0c;给自己桌面打扮一下&#xff0c;定制一个自己喜欢的桌面插件&#xff0c;让桌面变得更美观实用&#xff01; 如何给桌面添加一个实用的插件&…

编译器基础介绍

随着深度学习的不断发展&#xff0c;AI 模型结构在快速演化&#xff0c;底层计算硬件技术更是层出不穷&#xff0c;对于广大开发者来说不仅要考虑如何在复杂多变的场景下有效的将算力发挥出来&#xff0c;还要应对 AI 框架的持续迭代。AI 编译器就成了应对以上问题广受关注的技…

安装破解激活pycharm

装pycharm之前先装python 激活方式版本不能过新&#xff0c;要22年1月及其之前的版本&#xff0c;下拉找到对应版本的专业版 Other Versions - PyCharmGet past releases and previous versions of PyCharm.https://www.jetbrains.com/pycharm/download/other.html 2.下载电脑…

Transiting from CUDA to HIP(三)

一、Workarounds 1. memcpyToSymbol 在 HIP (Heterogeneous-compute Interface for Portability) 中&#xff0c;hipMemcpyToSymbol 函数用于将数据从主机内存复制到设备上的全局内存或常量内存中&#xff0c;这样可以在设备端的内核中访问这些数据。这个功能特别有用&#x…

【qiankun】使用总结

主应用 主应用使用的技术栈&#xff1a;Angular 18 Antd 微应用 微应用使用的技术栈&#xff1a;React 18 Antd 创建子应用 // 安装angular CLI&#xff08;如果本地已安装可忽略&#xff09; npm install -g angular/cli// 创建子应用 ng new my-app-name配置子应用 安…

保姆级教程:Dupay从注册到充值开卡全过程,可开GPT Plus、可绑定GPT充值API余额

前言 想要购买GPT Plus&#xff0c;或者给GPT充值&#xff0c;绑定国内visa信用卡&#xff0c;会被拒&#xff0c;于是便问问度娘&#xff0c;找到了一篇关于注册虚拟卡的教程&#xff0c;搬过来顺便修改下&#xff01; 应用场景 1、Depay Master Visa卡支持绑定宝、微、美外…

软件测试基础知识 + 面试理论(超详细!)

一、什么是软件&#xff1f; 软件是计算机系统中的程序和相关文件或文档的总称。 二、什么是软件测试&#xff1f; 说法一&#xff1a;使用人工或自动的手段来运行或测量软件系统的过程&#xff0c;以检验软件系统是否满足规定的要求&#xff0c;并找出与预期结果之间的差异…

【网络安全】服务基础第一阶段——第十一节:Windows系统管理基础----PKI技术与应用

目录​​​​​​​ 一、加密技术 1.1 基本保密通信模型 1.2 密码学发展 1.2.1 古典密码学&#xff08;1949年前&#xff09; 1.2.2 近代密码学&#xff08;1949&#xff5e;1975年&#xff09; 1.2.3 现代密码学&#xff08;1976年以后&#xff09; 1.3 古典密码 1.3.…

月考成绩如何私密发布?教程来啦!

月考结束&#xff0c;老师们总是忙得不可开交。需要将每一份成绩单仔细核对&#xff0c;然后逐一私信给每位学生的家长。这个过程不仅耗时耗力&#xff0c;而且容易出错。家长们也常常因为等待成绩而焦虑不安。但现在有了一种更高效、更私密的方法来发布成绩——易查分小程序。…

GatewayWorker框架的详解和应用

一、介绍 1. 简介 GatewayWorker基于Workerman开发的一个项目框架&#xff0c;用于快速开发TCP长连接应用&#xff0c;例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等 GatewayWorker使用经典的Gateway和Worker进程模型。Gateway进程负责维持客户端连接…

烟雾报警器可以节能与守护并存吗?| 合宙功耗分析仪Air9000P实测

有多少人跟我一样&#xff0c;每次抬头看到天花板上那个长年累月默默站岗的烟雾报警器&#xff0c; 总会想&#xff1a;它真的在工作吗&#xff1f;电量到底能撑多久呢&#xff1f; 不如&#xff0c;动手测一测功耗&#xff01; 烟雾报警器通过内置的传感器实时感知环境中的烟…

Vue3安装Element Plus

文章目录 安装使用包管理器安装配置&#xff1a;完整引入按需引入&#xff1a; 使用&#xff1a; 以下将参考Element Plus官网 一个 Vue 3 UI 框架 | Element Plus (element-plus.org)进行 安装 在创建好的项目文件控制台下安装&#xff1a; 使用包管理器 我们建议您使用包…

UE4_后期处理_后期处理材质及后期处理体积二

效果&#xff1a; 步骤&#xff1a; 1、创建后期处理材质,并设置参数。 2、回到主界面&#xff0c;找到需要发光的物体的细节面板。 渲染自定义深度通道&#xff0c;默认自定义深度模具值为10&#xff08;需要修改此值&#xff0c;此值影响物体的亮度&#xff09;。 3、添加…

git clone 别人的项目上传到自己的Gitee或者github仓库

git clone别人的项目 git clone https://github.com/wohuweixiya/yft-design.git 进入该项目内&#xff0c;删除原有的.git信息 rm -r .git 初始化.git git init 将本地代码添加到仓库 git add . git commit -m "提交仓库说明" Github上新建一个和这个clone下来…