轻量封装WebGPU渲染系统示例<25>- 颜色附件数据更新替换(源码)
当前示例源码github地址:
https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/ColorAttachmentReplace.ts
此示例基于此渲染系统实现,当前示例TypeScript源码如下:
const rttTex0 = { diffuse: { uuid: 'rtt0', rttTexture: {} } };
const rttTex1 = { diffuse: { uuid: 'rtt1', rttTexture: {} } };
const attachment0 = {texture: rttTex0,clearValue: [] as ColorDataType,loadOp: "clear",storeOp: "store"
} as WGRPassColorAttachment;
const attachment1 = {texture: rttTex1,clearValue: [] as ColorDataType,
} as WGRPassColorAttachment;
const colorAttachments: WGRPassColorAttachment[] = [attachment0];class PassGraph extends WGRPassNodeGraph {private mTimes = 0;constructor() { super(); }runBegin(): void {super.runBegin();}run(): void {this.mTimes++;if (this.mTimes == 50) {const replaceColorAttachment = true;if (replaceColorAttachment) {// replace color attachmentattachment1.clearValue = [0.2, 0.5, 0.2];colorAttachments[0] = attachment1;} else {// replace texturecolorAttachments[0].texture = rttTex1;}}let pass = this.passes[0];for (let i = 0; i < 1; ++i) {pass.colorAttachments[0].clearEnabled = i < 1;pass.render();}}
}export class ColorAttachmentReplace {private mRscene = new RendererScene();initialize(): void {console.log("ColorAttachmentReplace::initialize() ...");let multisampleEnabled = true;let depthTestEnabled = false;let rpassparam = { multisampleEnabled, depthTestEnabled };this.mRscene.initialize({ rpassparam });this.initEvent();this.initScene();}private mGraph = new PassGraph();private applyRTTPass(clearColor: ColorDataType, extent = [0.4, 0.3, 0.5, 0.5]): void {let rs = this.mRscene;const graph = this.mGraph;attachment0.clearValue = clearColor;attachment1.clearValue = clearColor;let rPass = rs.renderer.appendRenderPass({ separate: true, colorAttachments });const diffuseTex = { diffuse: { url: "static/assets/huluwa.jpg", flipY: true } };let rttEntity = new FixScreenPlaneEntity({ extent: [-0.8, -0.8, 1.6, 1.6], textures: [diffuseTex] });rPass.addEntity(rttEntity);graph.passes = [rPass];rs.setPassNodeGraph(graph);let entity = new FixScreenPlaneEntity({ extent, flipY: true, textures: [rttTex0] });rs.addEntity(entity);extent = [-0.9, -0.9, 1.2, 1.2];entity = new FixScreenPlaneEntity({ extent, flipY: true, textures: [rttTex1] });rs.addEntity(entity);}private initEvent(): void {const rs = this.mRscene;new MouseInteraction().initialize(rs, 0, false).setAutoRunning(true);}private initScene(): void {this.applyRTTPass([0.1, 0.1, 0.1, 1.0], [-0.8, -0.8, 1.6, 1.6]);}run(): void {this.mRscene.run();}
}
相关文章:
轻量封装WebGPU渲染系统示例<25>- 颜色附件数据更新替换(源码)
当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/ColorAttachmentReplace.ts 此示例基于此渲染系统实现,当前示例TypeScript源码如下: const rttTex0 { diffuse: { uuid: rtt0, rttTexture: {} } }; c…...
c语言练习第11周(1~5)
数列 1 1 2 3 5 8 13 21 ... 被称为斐波纳数列。 输入若干个正整数N,输出这个序列的前 N 项的和。 题干数列 1 1 2 3 5 8 13 21 ... 被称为斐波纳数列。 输入若干个正整数N,输出这个序列的前 N 项的和。输入样例3 5 4 1输出样例…...
阿里云国际站服务器如何升级内存容量?
阿里云服务器是阿里云供给的计算服务,它具有高效安稳、可扩展性强等特色,适用于各种应用环境。在运用阿里云服务器的过程中,或许会遇到内存容量缺乏的状况,这时候就需求晋级内存容量。那么,阿里云服务器怎么晋级内存容…...
神经网络(第二周)
一、简介 1.1 需求预测示例 1.1.1 逻辑回归算法 根据价格预测商品是否畅销。特征:T恤的价格;分类:销售量高1/销售量低0;使用逻辑回归算法进行分类,拟合效果如下图所示: 1.1.2 神经元和神经网络 将逻辑回…...
《网络协议》04. 应用层(DNS DHCP HTTP)
title: 《网络协议》04. 应用层(DNS & DHCP & HTTP) date: 2022-09-05 14:28:22 updated: 2023-11-12 06:55:52 categories: 学习记录:网络协议 excerpt: 应用层、DNS、DHCP、HTTP(URI & URL,ABNF…...
springboot自己添加的配置文件没有绿色叶子问题
在IntelliJ IDEA中,不同文件类型通常会有不同的图标,以便更容易识别它们。如果您的自己添加的 .properties 文件和项目中自动生成的 .properties 文件显示不同的图标,这可能是因为它们被识别为不同的文件类型。 通常情况下,Intel…...
【Java】定时任务 - Timer/TimerTask 源码原理解析
一、背景及使用 日常实现各种服务端系统时,我们一定会有一些定时任务的需求。比如会议提前半小时自动提醒,异步任务定时/周期执行等。那么如何去实现这样的一个定时任务系统呢? Java JDK提供的Timer类就是一个很好的工具,通过简单…...
SAP ABAP基础语法-Excel上传(十)
EXCEL BDS模板上传及赋值 上传模板事务代码:OAER l 功能代码:向EXCEL模板中写入数据示例代码如下 REPORT ZEXCEL_DOI. “doi type pools TYPE-POOLS: soi. *SAP Desktop Office Integration Interfaces DATA: container TYPE REF TO cl_gui_custom_c…...
记录一次某某虚拟机的逆向
导语 学了一段时间的XPosed,发现XPosed真的好强,只要技术强,什么操作都能实现... 这次主要记录一下我对这款应用的逆向思路 apk检查 使用MT管理器检查apk的加壳情况 发现是某数字的免费版本 直接使用frida-dexdump 脱下来后备用 应用分…...
upload-labs关卡7(基于黑名单的空格绕过)通关思路
文章目录 前言一、回顾上一关知识点二、靶场第七关通关思路1、看源代码2、空格绕过3、检查文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试…...
CnosDB 在最近新发布的 2.4.0 版本中增加对时空函数的支持。
CnosDB 在最近新发布的 2.4.0 版本中增加对时空函数的支持。 概述 时空函数是一种用于描述时空结构和演化的函数。它在物理学、数学和计算机科学等领域中都有广泛的应用。时空函数可以描述物体在时空中的位置、速度、加速度以及其他相关属性。 用法 CnosDB 将使用一种全新的…...
python实现炒股自动化,个人账户无门槛量化交易的开始
本篇作为系列教程的引子,对股票量化程序化自动交易感兴趣的朋友可以关注我,现在只是个粗略计划,后续会根据需要重新调整,并陆续添加内容。 股票量化程序化自动交易接口 很多人在找股票个人账户实现程序化自动交易的接口࿰…...
推荐系统笔记--Swing模型的原理
1--Swing模型的引入 在 Item CF 召回中,物品的相似度是基于其受众的交集来衡量的,但当受众的交集局限在一个小圈子时,就会误将两个不相似的物品定义为相似; Swing 模型引入用户的重合度来判断两个用户是否属于一个小圈子ÿ…...
联想小新Pro14默认设置的问题
联想小新Pro14 锐龙版,Win11真的挺多不习惯的,默认配置都不符合一般使用习惯。 1、默认人走过自动开机。人机互动太强了; 2、默认短超时息屏但不锁屏,这体验很容易觉得卡机然后唤起,却又不用密码打开; 3…...
【洛谷 P5019】[NOIP2018 提高组] 铺设道路 题解(分治算法+双指针)
[NOIP2018 提高组] 铺设道路 题目背景 NOIP2018 提高组 D1T1 题目描述 春春是一名道路工程师,负责铺设一条长度为 n n n 的道路。 铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n n n 块首尾相连的区域,一开始,第 i i i …...
牛客刷题记录11.12
继承和组合 二进制数统计 1的个数 和 0 的个数...
NextJS开发:使用IconPark、Lucide图标库
IconPark、Lucide两个很不错的图标库,如果需要用到微信、阿里等国内logo可以使用IconPark,Lucide中没有包含这些内容。 安装IconPark npm install icon-park/react --save简单使用 import {Home} from icon-park/react;<Home/> <Home theme&…...
11.12总结
这一周主要写了个人中心的几个功能,资料修改,收货地址的创建和修改删除,还有主页界面和商品界面...
Gogs安装和部署教程-centos上
0、什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务。 Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windo…...
Unity中Shader雾效的实现方法一
文章目录 前言一、在片元着色器中使用如下公式计算最终的颜色 lerp(雾效颜色,物体颜色,雾效混合因子)1、获取雾效颜色2、物体的颜色一般通过纹理采样得到,此处用 1 代替测试3、获取 雾效混合因子(由 雾的距离 和 雾的浓度决定&am…...
Phi-4-mini-reasoning企业级部署:Nginx反向代理+HTTPS安全访问配置教程
Phi-4-mini-reasoning企业级部署:Nginx反向代理HTTPS安全访问配置教程 1. 项目介绍 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这款模型主打"小参数、强推理、长上下文、低延迟…...
C#开发者紧急通告:Blazor 2026正式版插件兼容性断崖预警(附72小时热修复方案)
第一章:C#开发者紧急通告:Blazor 2026正式版插件兼容性断崖预警(附72小时热修复方案) Blazor 2026正式版已于2026年4月1日全球发布,但微软官方同步披露:所有基于.NET 7及更早运行时构建的第三方组件库&…...
ComfyUI实战:Qwen-Image三大ControlNet方案深度评测与选型指南
1. Qwen-Image ControlNet方案全景概览 第一次在ComfyUI里看到Qwen-Image的ControlNet选项时,我对着三套方案发了半小时呆——就像站在自助餐厅里面对琳琅满目的菜品,每样都想尝却不知从哪下手。经过两周的密集测试,终于摸清了这些方案的脾性…...
2026年阿里国际站数字人直播服务商评测
2026 阿里国际站数字人直播服务商选型参考:基于五大维度的评测分析 开篇 随着跨境电商行业的竞争加剧,阿里国际站商家对高效获客工具的需求日益迫切,AI 数字人直播凭借 24 小时不间断开播、降本增效的核心优势,已经成为跨境商家突破时区限制、提升询盘转化的核心抓手。 …...
同事离职,他在大群里发了一句“感谢一路相伴,江湖再见”,刚发出去,HR就让他撤回,理由是工作群不要发与工作无关的内容。
今天摸鱼的时候,听到一个极其荒诞又极其现实的职场鬼故事。隔壁部门的老李提了离职,今天是last day。这哥们儿可能平时武侠小说看多了,临走前在几百人的公司大群里发了一句:“感谢一路相伴,江湖再见”。结果呢…...
第6章 黎曼流形优化与几何方法
第6章 黎曼流形优化与几何方法 6.1 黎曼几何基础 6.1.1 复Stiefel流形与单位模流形(Unit-Modulus Manifold)度量 6.1.2 指数映射(Exponential Mapping)与平行移动(Parallel Transport) 6.1.3 测…...
嵌入式贝叶斯优化:Arduino/ESP32轻量级1D黑箱调参库
1. 项目概述Bayesian Optimization(贝叶斯优化)Arduino 库是一个面向资源受限嵌入式平台的轻量级、确定性、单输入维度(1D)黑箱函数优化器。它并非通用数值计算库,而是专为微控制器场景深度定制的实时决策引擎——当目…...
IndexTTS-2-LLM功能全解析:不仅能用,还这么好用!
IndexTTS-2-LLM功能全解析:不仅能用,还这么好用! 1. 引言:为什么选择IndexTTS-2-LLM? 想象一下,你正在制作一个有声读物,需要把大量文字转换成自然流畅的语音。传统语音合成工具生成的机械音让…...
聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?直
. GIF文件结构 相比于 WAV 文件的简单粗暴,GIF 的结构要精密得多,因为它天生是为了网络传输而设计的(包含了压缩机制)。 当我们用二进制视角观察 GIF 时,它是由一个个 数据块(Block) 组成的&…...
什么是大模型技术栈?
什么是技术栈? 咱们可以把大模型想象成一个“超级大脑”,技术栈就是为了打造和运转这个大脑所需要的一整套工具、方法和技术的集合。 用建房子来打个比方,大模型技术栈主要分为四层: 地基(硬件层)&#…...
