你知道如何实现游戏中的透视效果吗?

在这里插入图片描述

引言

游戏中的透视效果可以合理运用CtrlCV实现。

不知道大家有没有这样一段经历:在做Cocos项目时需要一些特定的Shader去做一些特定的效果,例如透视、高光、滤镜等等,想自己写吧,不怎么会啊,网上又找不到,找到了却又发现是Unity的Shader。。。

本文将通过一个将简单的UnityShader改成CocosShader来实现游戏中的x光透视效果

本文源码和源工程在文末获取,小伙伴们自行前往。

1.什么是X光透视效果?

在这里插入图片描述

在游戏开发中,X光透视效果通常指的是一种视觉效果,让玩家或者观众能够穿过物体表面看到其内部结构,就像X光或透视图一样。

游戏中的X光透视效果通常用于展示隐藏的物品、地图的结构、或者在某些情况下用于增加游戏的战术性,比如让玩家看到墙后面的敌人位置。

实现这种效果的方法可以是使用特殊的着色器和渲染技术,通过调整渲染层级或者使用特定的材质,使得物体的内部结构能够透过外部表面显示出来。

话不多说,一起来看下如何在把UnityShader转成CocosShader实现x光透视效果

2.一起来实现实现x光透视效果

我们根据以下的步骤一步一步来把UnityShader转成CocosShader实现x光透视效果:

1.环境

引擎版本:Cocos Creator 3.8.1

编程语言:TypeScript

2.资源准备

首先在我们在网上找一段关于X光透视效果的UnityShader片段。

本次教程CtrlCV的对象

3.CtrlCV前的分析

在写CocosShader之前我们先简单分析一下这个Shader片段。

首先定义了Shader的名字Custom/XRayTrans和它的几个属性主纹理_MainTex、边缘颜色_RimColor和边缘强度_RimPower。可以控制边缘的颜色以及强度

学会定义

然后是通道的一些简单设置。包括

  • 设置混合模式Blend SrcAlpha One
  • 关闭深度写入ZWrite off
  • 关闭光照Lighting off
  • 设置深度测试方法ztest greater

简单的设置

定义一下输入和输出的结构。包括输入定点位置、纹理坐标、颜色和法线。输出像素位置和颜色

有进有出

顶点着色器。主要是实现通过视图方向和法线去计算变量边缘强度,并设置颜色。

关键1,顶点着色器

片元着色器。无特殊操作,直接返回顶点像素颜色。

关键2,片元着色器

4.开始CtrlCV

首先打开工程创建一个Shader(Effect)。命名为XRayTrans.effect

有鼠标就行

搜索built找到builtin-unlit效果,双击打开并且复制内容到我们的自定义Shader上。

有手就行

我们添加一个通道编写自己所需要的效果。其中vert_ray对应的自定义的顶点着色器,frag_ray对应的自定义的片元着色器。

有路就行

属性和前面分析的一样添加边缘颜色_RimColor和边缘强度_RimPower两个属性。

不能说一模一样

还是和前面分析的一样设置一下混合模式、关闭深度写入以及设置深度测试方式

简直就是

顶点着色器vert_ray我们简单拷贝一下vert,去掉一些不必要的内容,加入我们需要的视图方向的计算,边缘强度的计算以及像素颜色的设置。为什么这么写可以了解下边缘光或者x光效果。

是不是好像

片元着色器frag_ray也是很简单,直接把顶点着色器传进来的内容设置就好。

是真的好像

最后把模型的Shader更换成我们的自定义shaders/XRayTrans。注意设置一下贴图。

最后的最后

当然了,上述的一些效果,可以直接面板去编辑设置。包括边缘颜色、边缘强度、混合模式、关闭深度写入以及设置深度测试方式

可视化的好处

效果演示

动图不太清晰,先来个高清大图,透过石头可以清楚看到小鸡的轮廓。

哪都能看到你

还是要上个动图的,虽然不方便摸鱼,但是这会好看点。小鸡自身有点透视效果,知道怎么解决的可以私信我。
在这里插入图片描述

结语

在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。

实不相瞒,想要个在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

你知道王者荣耀是怎么实现技能范围指示器的吗?

8年主程手把手打造Cocos独立游戏开发框架

和8年游戏主程一起学习设计模式

从零开始开发贪吃蛇小游戏到上线系列

本文源码和源工程可通过发送私信ModShader获取

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

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

相关文章

redis-cluster集群(目的:高可用)

1、特点 集群由多个node节点组成,redis数据分布在这些节点中,在集群中分为主节点和从节点,一个主对应一个从,所有组的主从形成一个集群,每组的数据是独立的,并且集群自带哨兵模式 2、工作原理 集群模式中…

重生之我是一名程序员 37 ——C语言中的栈溢出问题

哈喽啊大家晚上好! 今天呢给大家带来一个烧脑的知识——C语言中的栈溢出问题。那什么是栈溢出呢?栈溢出指的是当程序在执行函数调用时,为了保护函数的局部变量和返回地址,将这些数据存储在栈中。如果函数在函数调用时使用了过多的…

安卓手机便签APP用哪个,手机上好用的便签APP是什么

在日常生活及工作方面,总是有许多做不完的事情需要大家来处理,当多项任务堆叠交叉在一起时,很容易漏掉一些项目,这时候大家会借助经常携带的手机来记录容易忘记的事情,如手机上的闹钟、定时提醒软件都可以用来记录待办…

2023亚太杯数学建模A题思路分析 - 采果机器人的图像识别技术

1 赛题 问题A 采果机器人的图像识别技术 中国是世界上最大的苹果生产国,年产量约为3500万吨。与此同时,中国也是世 界上最大的苹果出口国,全球每两个苹果中就有一个,全球超过六分之一的苹果出口 自中国。中国提出了一带一路倡议…

JDK11新特性

目录 一、JShell 二、Dynamic Class-File Constants类文件新添的一种结构 三、局部变量类型推断(var ”关键字”) 四、新加的一些实用API 1. 新的本机不可修改集合API 2. Stream 加强 3. String 加强 4. Optional 加强 5. 改进的文件API 五、移…

Django框架之中间件

目录 一、引入 二、Django中间件介绍 【1】什么是Django中间件 【2】Django中间件的作用 【3】示例 三、Django请求生命周期流程图 四、Django中间件是Django的门户 五、Django中间件详解 六、中间件必须要掌握的两个方法 (1) process_request (2) process_respon…

Redis集群环境各节点无法互相发现与Hash槽分配异常 CLUSTERDOWN Hash slot not served的解决方式

原创/朱季谦 在搭建Redis5.x版本的集群环境曾出现各节点无法互相发现与Hash槽分配异常 CLUSTERDOWN Hash slot not served的情况,故而把解决方式记录下来。 在以下三台虚拟机机器搭建Redis集群—— 192.168.200.160192.168.200.161192.168.200.162启动三台Redis集…

Python爬虫-获取汽车之家新车优惠价

前言 本文是该专栏的第10篇,后面会持续分享python爬虫案例干货,记得关注。 本文以汽车之家新车优惠价为例,获取各车型的优惠价,示例图如下: 地址:aHR0cHM6Ly9idXkuYXV0b2hvbWUuY29tLmNuLzAvMC8wLzQyMDAwMC80MjAxMDAvMC0wLTAtMS5odG1sI3B2YXJlYWlkPTIxMTMxOTU= 需求:获…

OpenStack云计算平台

目录 一、OpenStack 1、简介 2、硬件需求 3、网络 二、环境搭建 1、安全 2、主机网络 3、网络时间协议(NTP) 4、OpenStack包 5、SQL数据库 6、消息队列 7、Memcached 一、OpenStack 1、简介 官网:https://docs.openstack.org/2023.2/ OpenStack系统由…

Zynq-7000系列FPGA使用 Video Processing Subsystem 实现图像缩放,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA图像缩放方案自己写的HLS图像缩放方案 3、设计思路详解Video Processing Subsystem 介绍 4、工程代码详解PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程移植说明vivado版本不一致处理FPGA型号不一致处理其他注意事项…

给sprite上增加刷光动效

游戏引擎 —— cocos creator 3.52 此动效给动态修改尺寸的图片增加一层刷光的效果,直接贴代码 CCEffect %{techniques:- passes:- vert: sprite-vs:vertfrag: sprite-fs:fragdepthStencilState:depthTest: falsedepthWrite: falseblendState:targets:- blend: tr…

Charles 网络抓包工具详解与实战指南

文章目录 导读软件版本Charles基本原理核心功能下载及安装界面介绍网络包展示 常用场景介绍PC 端网络抓包移动端网络抓包PC 端配置手机端配置 开启 SSL 代理PC 端和移动端 CA 证书安装Charles 直接安装Charles 下载 CA 文件手动安装 常用操作请求重发请求改写、动态改写断点&am…

计算机网络——物理层相关习题(计算机专业考研全国统考历年真题)

目录 2012-34 原题 答案 解析 2018-34 原题 答案 解析 2009/2011-34 原题 答案 解析 2016-34 原题 答案 解析 2014-35/2017-34 原题 答案 解析 2013-34 原题 答案 解析 2015-34 原题 答案 解析 物理层的协议众多,这是因为物理层…

【DevOps】Git 图文详解(九):工作中的 Git 实践

本系列包含: Git 图文详解(一):简介及基础概念Git 图文详解(二):Git 安装及配置Git 图文详解(三):常用的 Git GUIGit 图文详解(四)&a…

【SpringMVC】 三层架构

一.lombok工具包 中央仓库查找这个工具包:https://mvnrepository.com/ 给类添加Data注解就可以获取gettter和setter方法 , 这样我们就不必写getter 和 setter 方法. 也可以给成员属性添加单独的getter 和 setter , 针对某个成员属性单独添加setter或setter方法. 二.如果使用spr…

一起学docker系列之七docker容器卷技术

目录 1 为什么使用容器数据卷?2 数据卷的特点和优势3 使用数据卷的方法3.1 创建容器并挂载数据卷3.2 容器间数据卷的共享与继承 4 数据卷的权限设置5 注意事项5.1 解决权限问题5.2 路径自动创建 结语 对于容器化应用程序的数据管理和持久化,Docker 数据卷…

链表的回文结构

题目描述 题目链接:链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 题目分析 我们的思路是: 找到中间结点逆置后半段比对 我们可以简单画个图来表示一下: ‘ 奇数和偶数都是可以的 找中间结点 我们可以用快慢指针来找中:l…

成为AI产品经理——模型构建流程(下)

目录 1.模型训练 2.模型验证 3.模型融合 4.模型部署 上节课我们讲了模型设计、特征工程,这节课我们来讲模型构建剩下的三个部分:模型训练、模型验证和模型融合。 1.模型训练 模型训练就是要不断地训练、验证、调优直至让模型达到最优。 那么怎么达…

Python“牵手”京东商品详情接口运营场景,京东商品详情接口调用指南

京东商品详情接口是一种程序化的接口,通过这个接口,商家或开发者可以使用自己的编程技能,获取京东平台上的商品详细信息。这个接口允许商家根据自身的需求,获取商品的标题、价格、促销价、优惠券、库存、销量、详情图片、SKU属性、…

YOLOv5分割训练,从数据集标注到训练一条龙解决

最近进行了分割标注,感觉非常好玩,也遇到了很多坑,来跟大家分享一下,老样子有问题评论区留言,我会的就会回答你。 第一步:准备数据集 1、安装标注软件labelme如果要在计算机视觉领域深入的同学&#xff0…