Unity Shaders and Effets Cookbook


目录

作者简介

审稿人简介

前言

我是偏偏

 Unity Shaders and Effets Cookbook

第一章:Diffuse Shading - 漫反射着色器

第二章:Using Textures for Effects - 着色器纹理特效的应用

第三章:Making Your Game Shine with Specular - 镜面反射让你的游戏闪光

第四章:Reflecting Your World - 反射

第五章:Lighting Models-光照模型


作者简介

        Kenny Lammers拥有超过13年游戏行业的工作经验。 曾就职于微软、Activision,最后任职的公司是Surreal Software。他目前管理着两家公司,Creative TD和Ozone Interactive。第一家Creative TD公司,主要给 IGT、微软、Janus Research 和Allegorithmic这些公司做Unity3D的咨询和资产的创建。Ozone Interactive是他第二家公司,与商业合作伙伴Noah Kaarbo共同经营。Ozone Interactive这家公司主要专注于Unity3D领域,专门从事交互式应用程序和高质量的设计。为亚马逊、E-line Media、微软和Sucker Punch游戏等公司提供服务。由于他有在游戏行业工作过的经验,让他有机会接触到使用ZBrush和Maya软件来创建角色。还编写了《实时着色器和后期处理特效》、使用c#在Unity3D中编过写完整的游戏。他目前正在开发几款游戏,为了加快游戏制作的进度还在Unity中开发了工具集。

作者的话

我要感谢的人太多了!单这个就完全可以占整整一章。首先要感谢的也是最重要的当然是我的妈妈。她总是告诉我朝着梦想努力,并总是在我身边支持我!我要感谢我的商业伙伴Noah Kaarbo,他在我写这本书的过程中一直支持着我,并称为了我的好朋友。我还要感谢一起共事过的所有人,但尤其重要的是,我要感谢那些一直鼓励着我的人,这些人督促我进一步提高了技能水平,并为我打开了行业的新世界。这些人是Ben Cammerano (MGS), Paul Amer (MGS),Fillipo Costanzo (5D Institute),Alessandro Tento (Lakshya),James Rogers (MGS),and Tony Garcia (Unity Technologies)。如果没有他们其中的任何一个,就不会有我今天的成就,我对他们致以最从高的致意。

我要感谢我所有的意大利游戏开发者朋友们,感谢他们为我们国家的游戏开发产业做出的贡献 

审稿人简介

Vincent Lim

Vincent Lim毕业于The One Academy,拥有数字动画和动画专业和游戏开发的文凭。毕业后,他立即加入了大蚂蚁工作室,被塑造成了游戏开发者。和他们相处了几年,Vincent学会了很多,从低多边形建模到平铺纹理再到地形雕刻,还有一点点的编程和MEL脚本。 他在大蚂蚁工作室非常积极,期间遇到的各种各样的任务。Vincent掌握了游戏引擎的知识、某些着色器的工作原理以及管线的工作流。为了提高效率,他得到了几次创建/重组某些管线的机会。他的MEL脚本技能是通过管线内的实际运用来培养的。 这使他可以做出艺术家可以使用的工具,在游戏中用来加快项目的进度并缩短从基础网格到3D模型的时间。凭借在Big Ant Studios的这些经验,Vincent通过学习新软件和阅读游戏力学以及游戏引擎,拓宽了自己的知识面。 这让他发现了Unity,并且他一直在Unity的领域中不断的保持着新的尝试。

Christian 'XeviaN' Meneghini

Christian 'XeviaN' Meneghini是一名年轻的老板,并热衷于Sinclair ZX Spectrum(它是由英国Sinclair公司于1982年生产的一款8位的键盘式个人电脑)。他开始使用基础的硬编码精和汇编语言来窥测游戏开发世界。  用基本语言和汇编语言的硬编码精灵窥探游戏开发世界。多年过去了,他使用了C64、辉煌的Amiga和所有PC家族处理器等伟大技术,使用了从Hercules和CGA的所有的视频卡,从第一个3D加速器到当前的3D加速器。 他沉迷于实时渲染和演示场景,同时专门从事图形编程和性能优化。 Christian 在业余时间也创作音乐。 多年来,Christian与朋友和同事们一起日以继夜的工作,研究技术书籍,编写引擎,并服务于第三方公司。2011年,Christian与朋友Marco Di Timoteo和 Luca Marchetti,一起创办了一家小型工作室,叫studio EVIL。 STUDIO EVIL的第一款产品是《Syder Arcade》,这是一款面向PC和Mac平台的老式复古射击游戏,带有真正的3D图形,随后游戏被移植到iOS、Android和OUYA平台。 

前言

        欢迎来到Unity着色器和效果食谱!这本书是你熟悉在Unity3D中创建着色器和后期效果的指南。您将在开始时开始您的旅程,创建最基本的着色器并学习着色器代码的结构。这一基础知识将武装你的手段进一步进入每一章,并产生着色器模拟人体皮肤,着色器处理动态反射,并将开发后期效果,如夜视。

        在每一章结束时,你将获得新的技能集,这将增加你的着色器的质量,甚至使你的着色器写作过程更有效。这些章节都是量身定制的,这样你就可以跳到每一部分,从初学者到专家学习一种特定的技能。或者,对于那些在Unity中编写Shader的新手来说,你可以通过每一章的进展,一次一个,以你的知识为基础。无论哪种方式,你都将学习到制作现代游戏的技巧。

        一旦你完成了这本书,你将有一组着色器,你可以在你的Unity3D游戏中使用,以及理解添加到它们,以完成新的效果和解决性能需求。让我们开始吧!


这本书的内容


        第1章,漫射阴影,通过解释如何在Unity3D中构建着色器来教授着色器写作的基础。然后将知识应用于创建默认漫射照明,并提供来自行业的提示和技巧来创建自定义漫射照明


        第2章,使用纹理效果,描述了如何利用纹理来创建不同的效果。您将学习如何通过着色器在精灵表上动画纹理,以及如何利用纹理的不同通道使着色器更有效。在本章结束时,你将有能力使用纹理来创建自己的自定义效果。

        第3章,让你的游戏闪耀与高光,教你一切你需要知道的关于创建最广泛使用的高光类型,Blinn和Phong。您将学习如何应用这些着色器效果来创建遮罩镜面,金属镜面,甚至将学习创建各向异性镜面的技术。在本章结束时,您将有足够的信心为自己的自定义着色器创建自己的自定义高光效果。


        第4章,反射你的世界,让你了解现代游戏中最流行的效果之一,那就是将反射技术结合到着色器中。本章将教你从Unity3D着色器反射的基础知识到使用c#建立自己的简单动态反射系统。


        第5章,光照模型,开始创建更复杂的着色器的过程。你会学习到如何创建自己的光照模型来实现自己的表面类型。每小节会展示不同的技术来完成不同的任务,都是为了提高你的着色器写作技能。到本章结束时,你可以创建自己的皮肤着色器,自己的 Lit Sphere 着色器和自己的车漆着色器。

        第6章“透明性”向你展示了在游戏制作的某些阶段,透明性成为一种必要的技术。几乎每款游戏都在某种程度上使用了透明度,比如GUI、树叶、贴花等等。在本章中,你将学习如何在Unity3D中使用透明度以及如何处理合并透明度时可能出现的问题。

        第7章,顶点魔术,介绍了如何访问存储在我们的3D网格的每个顶点的信息。您将学习如何获取这些信息,并在着色器中利用它来产生纹理混合和动画等效果。

        第8章,移动着色器调整,是关于如何利用Unity3D的内置标志和值来减少着色器的开销。这在处理移动平台上的着色器时变得尤为重要。

        第9章,用CgIncludes模块化你的着色器世界,向你展示了学习如何重用你写过的代码是必要的,一遍又一遍,为了使你的着色器编写更有效。本章向您展示如何创建自己的CgInclude文件来存储所有重复的代码以供重用。

        第10章,Unity渲染纹理的屏幕效果,首先看看任何现代游戏如何利用屏幕效果,有时被称为后期效果,改变游戏最终渲染图像的外观。您将学习如何创建自己的屏幕效果,并学习如何在游戏中添加颜色调整和纹理叠加以产生不同视觉效果的秘密。

        第11章,游戏玩法和屏幕效果,将你学到的屏幕效果的知识更进一步,并向你展示如何创建屏幕效果,提高游戏中的时刻。您将学习如何创建旧电影屏幕效果以及夜视屏幕效果。


我是偏偏

        还依稀记得多年前发现这本书时的喜悦,阅读过程中做了很多笔记、吧啦吧啦代码之类的。在天时地利机缘巧合的情况下可以有一些时间来整理整理这些笔记,然后写写文章。

        个人感觉这本书主要讲解的是美术效果做落地,而相对于偏纯理论方面的知识点不会讲解过多或过深,但书里也会附有说明,一般都会为我们提供相对应的网址链接,让我们自行去补充。这本书对于初学者来说是非常友好的。不仅有完整的代码,还可以让你看到完整的展示效果。以往敲Shader并不常使用Surface Shader,这本书也让我对Surface Shader有了更多的了解,内容比较通俗易懂,逐字逐句的阅读下来对自己的英语也有很大的帮助。

        未曾谋面的朋友们 —— 共勉!

 


 

 Unity Shaders and Effets Cookbook

《着色器和屏幕特效制作攻略》

I like this book!Reading, recording, and sharing...

 点击下方链接进入对应文章

第一章:Diffuse Shading - 漫反射着色器

  • 1.创建基础表面着色器
  • 2.为表面着色器添加属性  
  • 3.在表面着色器中使用材质属性
  • 4.创建自定义漫反射光照模型  
  • 5.创建半兰伯特照明模型 
  • 6.创建一个渐变纹理来控制漫反射着色 
  • 7.使用2D渐变纹理模拟BRDF

第二章:Using Textures for Effects - 着色器纹理特效的应用

  • 1.通过修改UV坐标实现纹理滚动效果
  • 2.精灵表动画
  • 3.封装混合纹理贴图
  • 4.法线贴图
  • 5.在Unity编辑器中创建程序纹理
  • 6.Photoshop色阶特效

第三章:Making Your Game Shine with Specular - 镜面反射让你的游戏闪光

  • 1.使用Unity3D内置的镜面反射
  • 2.创建 Phong 镜面反射
  • 3.创建 BlinnPhong 镜面反射
  • 4.使用高光贴图来实现镜面反射
  • 5.金属与软镜面反射的比较
  • 6.创建各向异性镜面反射

第四章:Reflecting Your World - 反射

  • 1.在 Unity3D 中创建立方体贴图 
  • 2.Unity3D 中实现立方体贴图反射
  • 3.Unity3D 中实现遮罩反射
  • 4.Unity3D 中实现法线贴图和反射
  • 5.Unity3D 中实现菲涅耳反射
  • 6.在 Unity3D 中创建动态立方体贴图系统

第五章:Lighting Models-光照模型

  • 1.Lit Sphere光照模型
  • 2.漫反射卷积光照模型 
  • 3.车漆光照模型 
  • 4.皮肤着色器 
  • 5.布料着色器

==

感谢这些年遇到的人,看过的书。

致敬作者们


 这本书可以让你学习到如何使用着色器和屏幕特效让你的Unity工程拥有震撼的渲染画面。

作者:Kenny Lammers


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

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

相关文章

部署RocketMQ

部署环境:jdk8以上,Linux系统 下载和安装指令: wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip 显示下载成功: --2025-05-10 11:34:46-- https://archive.apache.org/dist/rocketm…

使用FastAPI和React以及MongoDB构建全栈Web应用04 MongoDB快速入门

一、NoSQL 概述 1.1 了解关系数据库的局限性 Before diving into NoSQL, it’s essential to understand the challenges posed by traditional Relational Database Management Systems (RDBMS). While RDBMS have been the cornerstone of data management for decades, th…

高精度之加减乘除之多解总结(加与减篇)

开篇总述:精度计算的教学比较杂乱,无系统的学习,且存在同法多线的方式进行同一种运算,所以我写此篇的目的只是为了直指本质,不走教科书方式,步骤冗杂。 一,加法 我在此讲两种方法: …

气象大模型光伏功率预测中的应用:从短期,超短期,中长期的实现与开源代码详解

1. 引言 光伏功率预测对于电力系统调度、能源管理和电网稳定性至关重要。随着深度学习技术的发展,大模型(如Transformer、LSTM等)在时间序列预测领域展现出强大能力。本文将详细介绍基于大模型的光伏功率预测方法,涵盖短期(1-6小时)、超短期(15分钟-1小时)和中长期(1天-1周…

玩转Docker(一):基本概念

容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行。 本文将对其基本概念和基本使用做出介绍。包括容器生态系统、容器的原理、怎样运行第一个容器、容器技术的概念与实践、Docker镜像等等 目录 一. 鸟瞰容器生态系统 1. 容器…

计算机视觉与深度学习 | 基于数字图像处理的裂缝检测与识别系统(matlab代码)

🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅🍅 基于数字图像处理的裂缝检测与识别系统 🥦🥦🥦🥦🥦🥦🥦🥦🥦🥦🥦🥦🥦**系统架构设计****1. 图像预处理**目标:消除噪声+增强裂缝特征**2. 图像分割**目标:提取裂缝区域**3. 特征…

推荐一款免费开源工程项目管理系统软件,根据工程项目全过程管理流程开发的OA 办公系统

在当今的工程项目管理领域,许多企业和团队面临着诸多难题。传统的管理方式往往依赖于人工记录和分散的工具,导致项目进度难以实时把控,任务分配不够清晰,合同管理混乱,事件提醒不及时,财务管理缺乏系统性&a…

Proser:在使用中改进

上位机接收到下位机发送的协议,解析出工作模式,然后依据此模式切换到相应的界面。为了调试这个功能,由Proser提供的Block与Sequence生成器相当有用: 使用Block生成器:忽略掉不感兴趣的数据使用Sequence生成器&#xf…

C语言_程序的段

在 C 语言程序中,内存通常被分为多个逻辑段,每个段存储不同类型的数据。理解这些段的结构和功能,有助于你更高效地编写、调试和优化程序。以下是 C 语言程序中主要的内存段及其特点: 1. 代码段(Text Segment) 存储内容:编译后的机器指令(程序代码)。特性: 只读:防止…

【桌面】【输入法】常见问题汇总

目录 一、麒麟桌面系统输入法概述 1、输入法介绍 2、输入法相关组件与服务 3、输入法调试相关命令 3.1、输入法诊断命令 3.2、输入法配置重新加载命令 3.3、启动fcitx输入法 3.4、查看输入法有哪些版本,并安装指定版本 3.5、重启输入法 3.6、查看fcitx进程…

Node.js 24.0 正式发布:性能跃升与开发体验全面升级

Node.js v24.0.0 震撼发布!V8 13.6、npm 11、权限模型稳定化等重磅更新 2025年5月6日 —— Node.js 社区迎来重大里程碑!Node.js v24.0.0 正式发布,带来一系列激动人心的新特性、性能优化和 API 改进。本次更新涵盖 V8 JavaScript 引擎升级至…

MySQL 查询优化全攻略:从原理到实战

为什么查询优化如此重要? 在当今数据驱动的时代,数据库性能直接影响着用户体验和业务效率。根据统计,网页加载时间每增加1秒,转化率可能下降7%,而数据库查询往往是性能瓶颈的关键所在。作为最流行的开源关系型数据库之…

《从零开始:构建你的第一个区块链应用》

一、引言 区块链技术,这个曾经只在金融领域被广泛讨论的技术,如今已经渗透到各个行业。从供应链管理到智能合约,区块链的应用场景越来越丰富。对于开发者来说,理解区块链的基本原理并构建一个简单的区块链应用,是进入这…

使用AES-CBC + HMAC-SHA256实现前后端请求安全验证

AES-CBC HMAC-SHA256 加密验证方案,下面是该方案二等 优点 与 缺点 表格,适用于文档、评审或技术选型说明。 ✅ 优点表格:AES-CBC HMAC-SHA256 加密验证方案 类别优点说明🔐 安全性使用 AES-CBC 对称加密使用 AES-128-CBC 是可…

Veins同时打开SUMO和OMNeT++的GUI界面

进入 Veins 工程目录(即包含 sumo-launchd.py 的目录),打开终端设置 SUMO_HOME 环境变量(指向你安装的 SUMO 路径): export SUMO\_HOME/home/veins/src/sumo-1.11.0编译 Veins 工程(包含 OMNeT…

suricata之日志截断

一、背景 在suricata的调试过程中,使用SCLogXXX api进行信息的输出,发现输出的日志被截断了,最开始以为是解析逻辑有问题,没有解析完整,经过排查后,发现SCLogXXX api内部进行了长度限制,最长2K…

navicat 如何导出数据库表 的这些信息 字段名 类型 描述

navicat 如何导出数据库表 的这些信息 字段名 类型 描述 数据库名字 springbootmt74k 表名字 address SELECT COLUMN_NAME AS 字段名,COLUMN_TYPE AS 类型,COLUMN_COMMENT AS 描述 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA springbootmt74k AND TABLE_NAME a…

LVGL图像导入和解码

LVGL版本:8.1 概述 在LVGL中,可以导入多种不同类型的图像: 经转换器生成的C语言数组,适用于页面中不常改变的固定图像。存储系统中的外部图像,比较灵活,可以通过插卡或从网络中获取,但需要配置…

【Web前端开发】HTML基础

Web前端开发是用来直接给用户呈现一个一个的网页,主要包含实现用户的结构(HTML)、样式(CSS)、交互(JavaScript)。然而一个软件通常是由后端和前端完成的。可以查阅文档:HTML 教程 (w…

MySQL 8.0 单节点部署与一主两从架构搭建实战

前言:在数据驱动的时代,数据库作为数据存储与管理的核心组件,其架构的选择与配置对系统的性能、可用性和扩展性至关重要。MySQL 作为一款广泛应用的开源关系型数据库,凭借其稳定的性能和丰富的功能,深受开发者和企业的…