第一篇:快速入门

news2024/11/28 6:50:21

简介

本篇文章主要目的教你如何快速的理解、掌握cocos  shader的相关知识,并附加实践案例。

shader 我们可以理解为是一种在图形渲染过程中控制像素颜色的过程,通常用来创建各种视觉效果。如光照、阴影、扭曲等。

Material(材质)

material  是用于定义渲染效果的一种资源类型。简单理解可以看着是effect的使用实例,我们可以通过调整材质的属性,来控制物体的渲染效果。

material 需要与Effect一起使用。着色器定义了渲染的细节,而材质提供了一个可调整着色器的参数界面。

创建一个材质材质资源 · GitBook

Material  properties

 相关参数:Pass Params · GitBook

Effect

创建一个EffectCocos Creator 2.4 手册 - Effect

相关语法Effect Syntax · GitBook

内置变量

#include  <cc-local>

NameTypeInfo
cc_matWorldmat4模型空间转世界空间矩阵
cc_matWorldITmat4模型空间转世界空间逆转置矩阵

#include <cc-global>

NameTypeInfo
cc_timevec4x:游戏运行时间(秒)
cc_screenSizevec4xy:屏幕尺寸 zw:屏幕尺寸倒数
cc_screenScalevec4xy:屏幕缩放 zw:屏幕缩放倒数
cc_nativeSizevec4xy:实际着色缓冲的尺寸 zw:实际着色缓冲的尺寸倒数
cc_matViewmat4视图矩阵
cc_matViewInvmat4视图逆矩阵
cc_matProjmat4投影矩阵
cc_matProjInvmat4投影逆矩阵
cc_matViewProjmat4视图投影矩阵
cc_matViewProjInvmat4视图投影逆矩阵
cc_cameraPosvec4xyz:相机位置
cc_exposurevec4x:相机曝光 y:相机曝光倒数 z:是否启用 HDR w:HDR 转 LDR 缩放参数
cc_mainLitDirvec4xyz:主方向光源方向
cc_mainLitColorvec4xyz:主方向光颜色 w:主方向光强度
cc_ambientSkyvec4xyz:天空颜色 w:亮度
cc_ambientGroundvec4xyz:地面反射光颜色

#include <cc-environment>

NameTypeInfo
cc_environmentsamplerCubeIBL 环境贴图

#include <cc-forward-light>

NameTypeInfo
cc_sphereLitPos[MAX_LIGHTS]vec4xyz:球面光位置
cc_sphereLitSizeRange[MAX_LIGHTS]vec4x:球光尺寸 y:球光范围
cc_sphereLitColor[MAX_LIGHTS]vec4xyz:球光颜色 w:球光强度
cc_spotLitPos[MAX_LIGHTS]vec4xyz:聚光灯位置
cc_spotLitSizeRangeAngle[MAX_LIGHTS]vec4x:聚光灯尺寸 y:聚光灯范围 z:聚光灯角度
cc_spotLitDir[MAX_LIGHTS]vec4xyz:聚光灯方向
cc_spotLitColor[MAX_LIGHTS]vec4xyz:聚光灯颜色 w:聚光灯强度

#include <cc-shadow>

NameTypeInfo
cc_matLightPlaneProjmat4平面阴影的变换矩阵
cc_shadowColorvec4阴影颜色

自定义内置方法

  • 2.x 自定义内置方法

在引擎路径:

/Applications/Cocos/Creator/2.4.11/CocosCreator.app/Contents/Resources/engine/cocos2d/renderer/build/chunks

添加.inc 文件,例如:

再Effect中使用:

  • 3.x 自定义内置方法

可直接在项目的assets目录下创建一个chunks文件夹,创建.chunk 文件,其他同2.x 

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

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

相关文章

safari浏览器,直接安装ipa文件

蒲公英二维码方法 个人开发者账号发布证书AD-hoc 描述文件蒲公英上传链接通过苹果safari 浏览器下载IPA包 浏览器下载方法 前置条件 1.下载 ipa 包的设备的 uuid 已加入 苹果测试设备列表如何添加到测试列表 2.web 服务, 文件服务. 3.需要AD-hoc 描述文件 添加链接描述 1.创…

华大基因在合规管理、高质量发展方面将迈上新的台阶

今年6月&#xff0c;华大基因顺利通过了国际领先标准、测试及认证机构BSI的严格审核&#xff0c;获得GB/T 35770-2022 / ISO 37301:2021合规管理体系认证证书&#xff0c;成为行业内率先获此国际认证的企业。 ISO 37301合规管理体系认证是国际通用的合规管理体系认证标准&…

【Java Spring】SpringBoot 日志系统

文章目录 一、Spring Boot 日志系统1.1 Spring Boot 日志框架1.2 自定义日志打印1.3 日志级别设置1.4 日志持久化1.5 lombok 简化日志输出 一、Spring Boot 日志系统 1.1 Spring Boot 日志框架 SLF4J 和 logback都是spring boot内置的日志框架&#xff0c;开发者只负责调用对…

opencv-医学图像预处理

医学图像预处理通常需要针对特定任务和数据集的特点进行定制。以下是一些常见的医学图像预处理步骤&#xff0c;可以使用OpenCV以及其他相关库来实现&#xff1a; 导入相关的库 import cv2 import matplotlib.pyplot as plt1. 读取图像 image cv2.imread(r"C:\Users\m…

YOLOv8-Seg改进:自适应改变核大小卷积AKConv,效果优于标准卷积核和DSConv |2023.11月最新成果

🚀🚀🚀本文改进: AKConv 中,通过新的坐标生成算法定义任意大小的卷积核的初始位置。 为了适应目标的变化,引入了偏移量来调整每个位置的样本形状。 此外,我们通过使用具有相同大小和不同初始采样形状的 AKConv 来探索神经网络的效果。 AKConv 通过不规则卷积运算完成…

8.二维数组——将一个二维数组行和列的元素互换,存到另一个二维数组中。

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 将一个二维数组行和列的元素互换&#xff0c;存到另一个二维数组中。 二、题目分析 三、解题 程序运行代码 #incl…

AI 绘画 | Stable Diffusion 提示词扩展插件

前言 提示词对于Stable Diffusion AI绘画来说非常重要, 由于Stable Diffusion 支持英文提示词,对于英文不好的朋友,每次都要切换翻译网站去翻译,很不方便,下面介绍两款Stable Diffusion 提示词扩展插件,让你写提示词更轻松。 sd-webui-prompt-all-in-one 提示词多合一插…

区块链介绍

区块链提供了比特币的公共账本&#xff0c;这是一个有序的、带有时间戳的交易记录。这个系统用于防止重复消费和修改之前的交易记录。 Introduction 比特币网络中的每个完全节点都独立存储只包含该节点验证的块的区块链。当多个节点在他们的区块链中都有相同的块时&#xff0…

PMIC : 一颗芯片解决N多问题

1、什么是PMIC Power Management Integrated Circuit&#xff08;PMIC&#xff09;中文是电源管理集成电路&#xff0c;主要特点是高集成度&#xff0c;将传统的多路输出电源封装在一颗芯片内&#xff0c;使得多电源应用场景高效率更高&#xff0c;体积更小。 PMIC 是当今电子…

如何选择到适合自己的IP代理服务商?IPIDEA为您分享

随着互联网的发展&#xff0c;越来越多的企业开始依赖网络进行各种业务&#xff0c;对于代理IP这个工具来说&#xff0c;应该都不陌生&#xff0c;尤其是大数据、跨境行业的企业&#xff0c;为了让出海业务更顺利&#xff0c;也为了保护企业的数据安全和隐私&#xff0c;许多企…

c/c++ 字符 - ‘0‘ 或者 + ‘0‘ 的含义

总的就是说&#xff0c;int0char;char-0int &#xff0c;但是我们在做题时&#xff0c;这两个式子对数字才有意义&#xff0c;比如 char x50;int y5-0. 而我们平常对字符操作&#xff0c;比如大写字符转小写&#xff08;char cA->a&#xff09;,只需要cc-Aa&#xff0c;等…

6.一维数组——用冒泡法将10个整数由大到小排序

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为一维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 用冒泡法将10个整数由大到小排序 二、题目分析 三、解题 程序运行代码 #include<stdio.h> int main() {int …

MySQL实现高可用方案-MHA安装及配置

MySQL高可用性解决方案Master High Availability (MHA) 是一种在 MySQL 故障转移环境中实现快速故障转移和数据保护的开源软件。MHA 能在 MySQL 主节点发生故障时&#xff0c;自动将备节点提升为主节点&#xff0c;并且不会中断正在进行的 SQL 操作。 需求&#xff1a;主从配置…

P22 C++数组

目录 前言 01 什么是数组 02 如何定义数组 2.1 那么如何设置和访问这些整数呢&#xff1f; 2.2 小心内存越界 2.3 for循环遍历数组 03 在堆上创建数组 前言 本期我们讨论 C 中的数组。 在我们开始讨论数组之前&#xff0c;要先理解指针是什么&#xff0c;因为指针基本上…

快速开发表单好用吗?优势在哪?

如果应用快速开发表单&#xff0c;对提升企业的办公效率帮助巨大。在快节奏的现代社会生活中&#xff0c;职场办公也需要采用更专业的办公软件实现高效率提升。低代码技术平台就是如今常用于职场办公中的优质平台&#xff0c;其可视化操作、简单灵活、组件丰富等优势特点&#…

如何往excel中写子表?

with pd.ExcelWriter("C:/last_date.xlsx") as writer:for i in range(0, 10):df pd.DataFrame()df.to_excel(writer, indexFalse, sheet_namestr(days[i 1]))

【青蛙跳台阶问题 —— (三种算法)】

青蛙跳台阶问题 —— (三种算法&#xff09; 一.题目介绍1.1.题目1.2.图示 二.解题思路三.题解及其相关算法3.1.递归分治法3.2.动态规划算法&#xff08;Dynamic Programming&#xff09;3.3.斐波那契数列法 四.注意细节 一.题目介绍 1.1.题目 一只青蛙一次可以跳上1级台阶&am…

跨标签页通信的8种方式(上)

跨标签页通信是指在浏览器中的不同标签页之间进行数据传递和通信的过程。在传统的Web开发中&#xff0c;每个标签页都是相互独立的&#xff0c;无法直接共享数据。然而&#xff0c;有时候我们需要在不同的标签页之间进行数据共享或者实现一些协同操作&#xff0c;这就需要使用跨…

WhatsApp企业号如何增粉?5个客户开发技巧

收集粉丝关注的方法有很多种&#xff0c;本文将会介绍九种有效的方式&#xff0c;可以参考。 在传播信息的过程中&#xff0c;我们要需要把客户放在第一位&#xff0c;你能提供给客户什么&#xff0c;实用价值或情绪价格。给人的感觉真实吗&#xff1f;足够透明吗&#xff1f;…

爬虫系统Docker和Kubernetes部署运维最佳实践

在构建和管理爬虫系统时&#xff0c;使用Docker和Kubernetes可以带来诸多好处&#xff0c;如方便的部署、弹性伸缩和高可靠性。然而&#xff0c;正确的部署和运维实践对于确保系统稳定运行至关重要。在本文中&#xff0c;我将分享爬虫系统在Docker和Kubernetes上的最佳部署和运…