art-高光贴图制作


title: art-高光贴图制作
categories: Art
tags: [art, 高光, 贴图, 制作, ta]
date: 2019-01-23 14:26:18
comments: false

art-高光贴图制作


前篇

  • 次世代游戏贴图 制作高光贴图 08 - https://www.youtube.com/watch?v=WwJmwRKbaCo

流程

一般喜欢在图层中干, 保留原图

  1. 先把 颜色贴图 变成黑白图. 也就是把 饱和度 调为 -100 ( 效果和 图像 -> 调整 -> 去色 一样 )

  2. 调整 色阶

    • 部分不需要的话可以给 加个蒙版.
      这里用 钢笔工具 随便圈个路径, 然后生成矢量蒙版

应用高光贴图

shader

这里只用了 ForwardBase 的 pass. 所以只有一个光源起作用

Shader "test/testSpecularTex"
{Properties {_MainTex ("Texture", 2D) = "white" {}_Diffuse ("Diffuse", Color) = (1, 1, 1, 1)_SpecularTex ("SpecularTex", 2D) = "white" {}_SpecularPower("SpecularPower", float) = 1_SpecularColor ("SpecularColor", Color) = (1, 1, 1, 1)}SubShader {pass{Tags { "LightMode"="ForwardBase" }CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"#include "Lighting.cginc"#include "AutoLight.cginc"fixed4 _Diffuse;sampler2D _MainTex;sampler2D _SpecularTex;float _SpecularPower;float4 _SpecularColor;struct a2v {float4 vertex : POSITION;float3 normal : NORMAL;float2 uv : TEXCOORD0;};struct v2f {float2 uv : TEXCOORD0;float4 pos : SV_POSITION;fixed3 worldNormal : TEXCOORD1;float4 worldPos : TEXCOORD2;};v2f vert(a2v v) {v2f o;o.worldPos = mul(unity_ObjectToWorld, v.vertex);o.pos = mul(UNITY_MATRIX_VP, o.worldPos);o.worldNormal = mul((float3x3)unity_ObjectToWorld, v.normal);o.uv = v.uv;return o;}//漫反射光照模型——逐像素光照fixed4 frag(v2f i) : COLOR {float attenuation = LIGHT_ATTENUATION(i);fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz;float3 worldLightDir=normalize(UnityWorldSpaceLightDir(i.worldPos));float3 worldNormal=normalize(i.worldNormal);float3 worldViewDir=normalize(UnityWorldSpaceViewDir(i.worldPos));// blinn-phong 高光模型float3 specularTexCol = tex2D(_SpecularTex, i.uv).rgb;float3 halfVector = normalize(worldLightDir + worldViewDir);float specular = pow(max(0, dot(worldNormal, halfVector)) , _SpecularPower);float3 specularColor =_LightColor0.rgb* specularTexCol * specular * _SpecularColor.rgb * attenuation * 10;fixed3 halfLambert = dot(worldNormal, worldLightDir)*0.5+0.5;//利用半兰伯特公式计算漫反射光fixed3 diffuse = _LightColor0.rgb * _Diffuse.rgb * halfLambert * attenuation;//加上环境光的影响fixed3 color = ambient + diffuse + specularColor;float3 texColor = tex2D(_MainTex, i.uv).rgb;return fixed4(color*texColor, 1.0);}ENDCG}}FallBack "Diffuse"
}

辅助: 结合id贴图

高光部位一般是贴图的部分区域 ( 假设整个模型都在一个贴图上的情况 ), 这时可以把不需要高光的区域部位涂成 黑色 , 不过这样手动涂不太科学, 细调时才手动涂. 比较科学的姿势时结合 ID贴图 或者 substance painter 导出一个 遮罩图, 这样可以准确的再对应的 uv 块上填充 黑色或白色

ID贴图方式

这个流程稍微有点多, 具体参考: substance-Substance_Painter记录 中的 ID贴图

painter 遮罩图方式 ( 建议 )

个人感觉这种方式会更快点, 直接在对应的uv块上填充 黑/白

  1. 添加一个 填充层 , 随便填一个颜色, 因为这个颜色只是用来参考.

  2. 填充层 中添加一个 black mask, 然后再给 mask 右键添加一个 paint

    选中 paint, 用 polygon fill 工具填充需要高光区域部位为 白色

  3. 然后 右键 mask -> export mask to file 导出 遮罩图 给ps用

    • 导出的 分辨率 要与原贴图的一致, 可以这里设置

在ps中使用蒙版

具体参考: photoshop-photoshop记录 中的 使用制作好的遮罩图做蒙版

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

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

相关文章

用ps制作android日历步骤,PS设计制作日历

最终效果 一、观察这个图标,我们将它分成三个部分来制作,如下图所示。①日历的卷页 ②日历的夹子和金属环 ③底座。 2、新建一个700*800的画布,如下图所示。 3、新建一个圆角矩形作为日历卷页的最后一页。如下图所示。 4、为圆角矩形添加图层…

将简体字转换成繁体字

作者:京东瀚览家居官方旗舰店 //将GBK的简体转换到GBK繁体 LPTSTR CTestDlg::GBKSimplified2GBKTraditional(CString szSimplified) ...{ LCID dwLocale; WORD wLangID; wLangIDMAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED)…

win10繁体字转简体字

1、在设置中选择时间和语言 2、选择区域和语言 3、选微软拼音-选项 4、选择常规 5、设置字体

Java 字符流转字节流

字符流转字节流 基本思路就是: 字符流的输出流,转换为字节流的输出流 主要代码: // 这个只是找来做演示的 文件 FileOutputStream fos new FileOutputStream(“E:\1\IO示例文档.txt”); // 真实情况下, 给个字符流的源&#xff0…

字符流与字节流的区别

字符流与字节流的区别 文章目录 字符流与字节流的区别1.字符流2.字节流3.两者的区别 1.字符流 字符流自动允许我们逐字符读/写数据,有助于执行16位Unicode的输入和输出;它是以reader和writer结尾的。Java中字符流最常见的类是FileReader和FileWriter。在…

Java IO流 详解(字节流、字符流、输入流、输出流、刷新)

一、IO流概述 I:Input输入 从其他存储设备【读】数据到内存中 输入过程 O:OutPut输出 从内存中【写】数据到其他存储设备 输出过程 二、IO流分类 1.根据数据的类型分为: 【字节流】和【字符流】 【字节流】:以字节为基本单位,读写…

java 字节流与字符流的区别

字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区&am…

Java IO 字节流、字符流详解

1. 字节流与字符流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向…

【Java基础-3】吃透Java IO:字节流、字符流、缓冲流

Java IO流 前言1 初识Java IO1.1 IO流分类1.2 案例实操 2 IO流对象2.1 File类2.2 字节流2.3 字符流2.4 序列化 3 IO流方法3.1 字节流方法3.2 字符流方法 4 附加内容4.1 位、字节、字符4.2 IO流效率对比4.3 NIO 前言 有人曾问fastjson的作者(阿里技术专家高铁&#x…

字节流和字符流详解

1.流的概念 在编程中是一种抽象的概念,就好比“水流”,从一段流向另一端在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用…

Java IO流 - 字节流的使用详细介绍

文章目录 IO流的基本介绍字节流的使用文件字节输入流创建字节输入流每次读取一个字节每次读取一个数组一次读取全部字节 文件字节输出流创建字节输出流写入文件输出流 文件拷贝练习 IO流的基本介绍 IO流的概述: I 表示intput,是数据从硬盘文件读入到内存的过程&…

字节流(IO流)概述、字节流(写入/输出)数据(3种)和换行、追加写入、异常处理办法、字节缓冲流、字节流复制图片视频案例

目录 IO流概述和分类字节流写入数据(OutputStream)FileOutputStream字节流写数据的3种方式 字节流写入数据的两个小问题字节流写数据如何换行字节流如何实现追加写入 字节流写入数据加入异常处理字节流读取数据(InputStream)FileI…

字节流

字节流 根据数据的流向分为:输入流和输出流。 输入流 :把数据从其他设备上读取到内存中的流。输出流 :把数据从内存 中写出到其他设备上的流。 格局数据的类型分为:字节流和字符流。字节流 :以字节为单位&#xff0c…

1、字节流详解

文章目录 一、字节流1、字节输出流:OutputStream2、字节输入流:InputStream3、使用字节流复制数据4、字节缓冲流 一、字节流 文件字节流 字节流的两个抽象父类:字节输出流:OutputStream和字节输入流:InputStream 1、字…

PS美工教程:制作真实水面倒影效果详细步骤

倒影效果是电商海报和广告类海报常用的表现手法,倒影可以填充画面的空白区域和营造真实的视觉感受,给受众带来更好的视觉体验。 在海报合成中倒影效果可谓是必不可少的存在,那今天潇洒模具学院的老师就教大家通过PS自带的功能打造出真实的环…

CSS图片倒影效果

先看一下效果图 废话不多说直接上代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style lang"scss">img {-webkit-box-reflect: below 0px -webkit-linear-gradient(bottom, rgba(25…

3、水面倒影效果

水面倒影效果 概要 我们会使用 Matplotlib 的 pyplot 模块创建图并显示图像&#xff1a; 用以下魔术命令&#xff0c;以便将图像显示在笔记本中而不是在新的显示窗口中&#xff1a; 如果要显示彩色图像&#xff0c;可以使用以下命令将图像从 BGR 转换为 RGB。 最后使用 plt…

CSS3实现倒影效果

css的功能很强大&#xff0c;可以实现很多效果。比如图像的倒影和文字的倒影等&#xff0c;利用的是box-reflect&#xff0c;因为浏览器兼容问题&#xff0c;目前主要采用-webkit-box-reflect来实现&#xff08;谷歌浏览器&#xff09;。 倒影的属性&#xff1a; box-reflect&…

HTML里面设置文本倒影,文字倒影怎么做

现在的文字如果仅仅是在一个平面上,不加任何效果,那就真的是太死板、太单调了,尤其追求艺术的小伙伴们啊,细心的话你就会发现那些神马广告之类的文字都讲究有个性,让人过目不忘的效果,有木有!那么接下来就教大家制作文字效果,就是文字倒影效果制作。广告时间: 人物素描…

倒影(reflections)效果的实现

1、简介 当站在湖畔岸边或者镜子面前的时候&#xff0c;都可以看到倒着的自己&#xff0c;那种效果就叫倒影&#xff0c;或者叫镜面反射。在SPE中也支持这种效果&#xff0c;实现的基本思路是把物体根据反射平面镜像之后再绘制一遍&#xff0c;绘制镜像时有几个问题需要注意&a…