【Unity3D】Shader圆形弧度裁剪

片元着色器: 

float3 _Center = float3(0, 0, 0);
float3 modelPos = i.modelPos;// float angle = atan2(modelPos.y - _Center.y, modelPos.x - _Center.x); // 计算角度,范围-π到π
float angle = atan2(modelPos.y - _Center.y, modelPos.z - _Center.z); // 计算角度,范围-π到π
angle = (angle + PI) / (2 * PI); // 将角度归一化到0到1之间(如果需要)
if (angle > _AnimProcess)discard;

其中modelPos是模型坐标点,利用atan函数,计算出中心点与像素点的弧度,转[0,1]范围,再进行判定是否需要裁剪。

注意事项:若模型是基于YX轴平面的则需要改用
float angle = atan2(modelPos.y - _Center.y, modelPos.x - _Center.x); // 计算角度,范围-π到π
ZX轴则是 float angle = atan2(modelPos.z - _Center.z, modelPos.x - _Center.x); 其他类似同理。

如果发现不对说明modelPos不正常,或者模型坐标系的中心点并没有在(0,0,0)居中,需要调整模型坐标系对齐模型中心。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

curl发送文件bodyParser无法获取请求体的问题分析

问题及现象 开发过程使用curlPUT方式发送少量数据, 后端使用NodeJSexpress框架bodyParser,但测试发现无法获取到请求体内容,现象表现为req.body 为空对象 {} 代码如下: const bodyParser require(body-parser); router.use(/api/1, bodyParser.raw({limit: 10mb, type: */*}))…

Vue3 学习教程,从入门到精通,Vue 3 内置属性语法知识点及案例代码(25)

Vue 3 内置属性语法知识点及案例代码 Vue 3 提供了丰富的内置属性,帮助开发者高效地构建用户界面。以下将详细介绍 Vue 3 的主要内置属性,并结合详细的案例代码进行说明。每个案例代码都包含详细的注释,帮助初学者更好地理解其用法。1. data …

机器学习基石:深入解析线性回归

线性回归是机器学习中最基础、最核心的算法之一,它为我们理解更复杂的模型奠定了基础。本文将带你全面解析线性回归的方方面面。1. 什么是回归? 回归分析用于预测连续型数值。它研究自变量(特征)与因变量(目标&#xf…

OneCodeServer 架构深度解析:从组件设计到运行时机制

一、架构概览与设计哲学1.1 系统定位与核心价值OneCodeServer 作为 OneCode 平台的核心服务端组件,是连接前端设计器与后端业务逻辑的桥梁,提供了从元数据定义到应用程序执行的完整解决方案。它不仅是一个代码生成引擎,更是一个全生命周期管理…

Jwts用于创建和验证 ​​JSON Web Token(JWT)​​ 的开源库详解

Jwts用于创建和验证 ​​JSON Web Token(JWT)​​ 的开源库详解在 Java 开发中,提到 Jwts 通常指的是 ​​JJWT(Java JWT)库​​中的核心工具类 io.jsonwebtoken.Jwts。JJWT 是一个专门用于创建和验证 ​​JSON Web To…

如果发送的数据和接受的数据不一致时,怎么办?

那ART4222这个板卡举例,我之间输入一个原始数据“6C532A14”,但是在选择偶校验时,接收的是“6C532B14”,我发送的码率(运行速度)是100000,但接受的不稳定,比如;“100100.…

ISCC认证:可持续生产的新标杆。ISCC如何更快认证

在全球可持续发展浪潮中,ISCC(国际可持续与碳认证)体系已成为企业绿色转型的重要工具。这一国际公认的认证系统覆盖农业、林业、废弃物处理等多个领域,通过严格的可持续性标准、供应链可追溯性要求和碳排放计算规范,建…

想对学习自动化测试的一些建议

Python接口自动化测试零基础入门到精通(2025最新版)接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的人。 本人从事软件自动化测试已经近5年,从server端到web…

电子电气架构 ---智能电动汽车嵌入式软件开发过程中的block点

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

createAsyncThunk

下面,我们来系统的梳理关于 Redux Toolkit 异步操作:createAsyncThunk 的基本知识点:一、createAsyncThunk 概述 1.1 为什么需要 createAsyncThunk 在 Redux 中处理异步操作(如 API 调用)时,传统方法需要手…

STM32F103C8T6 BC20模块NBIOT GPS北斗模块采集温湿度和经纬度发送到EMQX

云平台配置 访问下载页面:免费试用 EMQX Cloud 或 EMQX Enterprise | 下载 EMQX,根据需求选择对应版本下载。将下载的压缩包上传至服务器(推荐存放于C盘根目录,便于后续操作),并解压至指定路径&#xff08…

YOLO11涨点优化:自研检测头, 新创新点(SC_C_11Detect)检测头结构创新,实现有效涨点

目标检测领域迎来重大突破!本文揭秘原创SC_C_11Detect检测头,通过空间-通道协同优化与11层深度结构,在YOLO系列上实现mAP最高提升5.7%,小目标检测精度暴涨9.3%!创新性结构设计+即插即用特性,为工业检测、自动驾驶等场景带来革命性提升! 一、传统检测头的三大痛点 在目…

OSCP 考试期间最新考试政策

根据 Offensive Security 官方最新考试政策(2025 年 7 月),OSCP 考试期间禁止或严格限制以下工具与行为: 一、绝对禁止使用的工具/服务 类别举例说明商业/付费版本Metasploit Pro、Burp Suite Pro、Cobalt Strike、Canvas、Core …

如何基于MQ实现分布式事务

文章目录1.可靠消息最终一致性1.1 本地消息表1.1.1 本地消息表的优缺点1.消息堆积,扫表慢2.集中式扫表,会影响正常业务3.定时扫表的延迟问题1.1.2 本地消息表的代码实践1.表结构设计2.具体业务实现1.2 事务消息1.2.1 事务消息的三个阶段阶段1&#xff1a…

ARM学习(45)AXI协议总线学习

笔者来介绍一下ARM AMBA 总线中的AXI协议 1、简介 ARM 公司推出的AMBA 总线(Advanced Microcontroller Bus Architecture) ,目前已经推出到AMBA5版本。主要包括 APB:Advanced Peripheral Bus,针对外设 AHB:Advanced High-Performance Bus,高性能总线,支持64/128 位多管…

Visual C++与HGE游戏引擎:创建伪2.5D斜45度视角游戏

本文还有配套的精品资源,点击获取 简介:本教程专注讲解如何结合Visual C和HGE游戏引擎构建一个斜45度视角的伪2.5D游戏世界。HGE提供了DirectX的接口,简化了图形和音频处理,使得开发者可以专注于游戏逻辑和视觉效果的实现。教程…

打造个人数字图书馆:LeaNote+cpolar如何成为你的私有化知识中枢?

文章目录前言1. 安装Docker2. Docker本地部署Leanote蚂蚁笔记3. 安装cpolar内网穿透4. 固定Leanote蚂蚁笔记公网地址前言 在信息爆炸的时代,如何系统管理知识资产并实现价值输出?蚂蚁笔记(Leanote)提供了一种全新解决方案。这款开…

[特殊字符]️ 整个键盘控制无人机系统框架

🎯 五大核心模块详解1. 📥 输入处理模块keyboard_control_node ├── 功能:捕获键盘输入并转换为ROS消息 ├── 文件:keyboard_control.cpp ├── 输入:键盘按键 (W/A/S/D/R/F/Q/E/L/ESC) ├── 输出:g…

机器学习第三课之逻辑回归(三)LogisticRegression

目录 简介 1.下采样 2.过采样 简介 接上两篇篇博客最后,我们使用了K折交叉验证去寻找最合适的C值,提升模型召回率,对于选取C的最优值,我们就要把不同C值放到模型里面训练,然后用验证集去验证得到结果进行比较&#x…

1.Java语言有什么特点

1.Java语言有什么特点 1.面向对象编程,拥有封装,继承和多态的特性,所有可以很好的设计出低耦合的项目工程。 2.很好的可移植性,在Java中有java虚拟机(JVM)的支持,每写一个类都是.Class文件。J…