Unity中Shader面片一直面向摄像机(个性化修改及适配BRP)

文章目录

  • 前言
  • 一、个性化修改面向摄像机效果
    • 1、把上一篇文章中求的 Z轴基向量 投影到 XoZ平面上
    • 2、其余步骤和之前的一致
    • 3、在属性面板定义一个变量,控制面片面向摄像机的类型
    • 4、效果
  • 二、适配BRP
  • 三、最终代码


前言

在上一篇文章中,我们用Shader实现了面片一直面向摄像机的效果。

  • Unity中Shader面片一直面向摄像机

在这篇文章中,我们对其进行个性化修改 及 BRP下的适配。


一、个性化修改面向摄像机效果

  • 在很多时候,我们并不需要面片在上下方向跟随摄像机旋转
  • 我们只需要面片跟随摄像机的左右旋转。
  • 那么,我们就需要对上一篇文章中实现的效果进行修改

1、把上一篇文章中求的 Z轴基向量 投影到 XoZ平面上

  • 最简单的办法就是,先把摄像机坐标转化到模型本地坐标
  • 让 y 值为0后,再归一化

float3 viewDir = mul(GetWorldToObjectMatrix(),float4(_WorldSpaceCameraPos,1)).xyz;
viewDir = float3(viewDir.x,0,viewDir.z);
viewDir = normalize(viewDir);

2、其余步骤和之前的一致

  • 假设Y轴基向量
  • 求X轴基向量
  • 求Y轴基向量

3、在属性面板定义一个变量,控制面片面向摄像机的类型

  • 属性面板

[Enum(Billboard,1,VerticalBillboard,0)]_BillboardType(“BillboardType”,int) = 1

  • 在顶点着色器

float3 viewDir = mul(GetWorldToObjectMatrix(),float4(_WorldSpaceCameraPos,1)).xyz;
viewDir.y *= _BillboardType;
viewDir = normalize(viewDir);

4、效果

在这里插入图片描述
请添加图片描述


二、适配BRP

SubShader{Tags{//渲染类型"RenderType"="Transparent"//渲染队列"Queue"="Transparent"}Blend [_SrcFactor] [_DstFactor]Pass{CGPROGRAM#pragma vertex vert#pragma fra

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

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

相关文章

B端产品经理学习-权限管理

目录 权限管理的原则 常见的权限管理模型 总结 对企业而言,最重要的一个资源就是有价值的专有信息,也就是自己知道,而其他企业不知道的信息,因此,专有信息是企业的重要竞争力,权限管理的价值体现在专有信…

一包多语言——使用FontForge合并字体

大家好,我是阿赵。   比较多游戏做了一个游戏包里面包含了多种语言,可以游戏内切换。这里分享一个合并多种语言字体的方法。 一、遇到的问题 假设我们游戏需要同时显示简体中文、泰文、老挝文三种语言。 解决方案有多种: 1、准备多种字体 …

打造VR数字乡村文旅新品牌,VR全景技术助力乡村振兴

新年伊始,各地乡村特色产业都在蓬勃发展,让冬日里的乡村重新焕发了新的活力。并且在这个冬季,各地还依托生态资源优势,打造智慧乡村文旅新品牌,激活乡村消费活力,例如有些乡村利用空心村,打造多…

戴尔服务器有8条内存条,开机有一条内存条自检提示出错,可以不用管他吗,有影响吗?

环境 戴尔R730 问题描述 戴尔服务器有8条内存条,开机有一条内存条自检提示出错,可以不用管他吗,有影响吗? 提示B1内存有问题 解决方案 不能,有影响,安装系统时卡住在启动节目无法正常安装,…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第十天-Linux下mplayer音乐播放器练习题(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…

浅研究下 DHCP 和 chrony

服务程序: 1.如果有默认配置,请先备份,再进行修改 2.修改完配置文件,请重启服务或重新加载配置文件,否则不生效 有些软件,安装包的名字和系统里服务程序的名字不一样(安装包名字:…

Python将Labelme文件的真实框和预测框绘制到图片上(v2.0)

Python将Labelme文件的真实框和预测框绘制到图片上(v2.0) 前言前提条件相关介绍实验环境Python将Labelme文件的标注信息绘制到图片上代码实现输出结果 前言 此版代码,相较于Python将Labelme文件的真实框和预测框绘制到图片上,将无…

R语言下载安装及VScode配置

文章目录 1. R 下载和安装1.1 下载1.2 安装 2. VSCODE 配置2.1 安装R拓展2.2 安装R语言辅助功能包2.3 DEBUG 1. R 下载和安装 1.1 下载 网址:https://www.r-project.org/ 选择一个镜像地址下载 选择对应的版本 一般选择base即可 1.2 安装 下载安装包后按提示安装…

MYSQL的学习——单行函数详解

目录 1. 数值函数 1) 基本函数 2) 角度与弧度互换函数 3) 三角函数 4) 指数与对数函数 5) 进制间的转换 2. 字符串函数 3. 日期和时间函数 1) 获取日期、时间 2) 日期与时间戳的转换 3) 获取月份、星期、星期数、天数等函数 4) 日期的操作函数 5) 时间和秒钟转换的…

常用机床类型的用途和介绍

随着市场对机加工需求的提升,机械加工的技术精度也随之提高,机床的种类也就越来越多。 根据加工方法和使用的工具进行分类,国家将机床编制为11类:车床、钻床、镗床、磨床、齿轮加工机床、螺纹加工机床、铣床、刨床、拔床、锯床等…

微信小程序-----账号注册以及开发软件的下载与代码结构介绍

目录 前言 微信小程序 1.微信小程序简单介绍 2.小程序与普通网页开发的区别 注册小程序开发帐号 微信小程序开发者工具下载 项目结构 1.小程序项目整体结构 2.小程序页面的组成部分 小程序组成部分 1. JSON 配置文件的作用 2. app.json 文件 3. project.config.jso…

【JaveWeb教程】(20) MySQL数据库开发之 基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询 详细代码示例讲解

目录 1. 数据库操作-DQL1.1 介绍1.2 语法1.3 基本查询1.4 条件查询1.5 聚合函数1.6 分组查询1.7 排序查询1.8 分页查询1.9 案例1.9.1 案例一1.9.2 案例二 在上次学习的内容中,我们讲解了: 使用DDL语句来操作数据库以及表结构(数据库设计&…