Unity图片转换为法线贴图

using UnityEngine;
using System.IO;
using UnityEditor;public class NormalTexture : MonoBehaviour
{public Texture2D tex1;private int W;private int H;void Start(){int W = tex1.width;int H = tex1.height;Texture2D tex2 = new Texture2D(W,H);for (int i = 1; i < W-1; i++)for (int j = 1; j < H-1; j++){//转换可修改算法,实现更加优质的贴图Color c;c = tex1.GetPixel(i-1, j);float left = (c.r + c.g + c.b) / 3;c = tex1.GetPixel(i+1,j);float right = (c.r + c.g + c.b) / 3;c = tex1.GetPixel(i, j + 1);float top = (c.r + c.g + c.b) / 3;c = tex1.GetPixel(i, j - 1);float bottom = (c.r + c.g + c.b) / 3;float u = left - right;float v = top - bottom;Vector3 ve3_U = new Vector3(1,0,u);Vector3 ve3_V = new Vector3(0,1,v);Vector3 N = Vector3.Cross(ve3_U, ve3_V).normalized;float r = N.x * 0.5f + 0.5f;float g = N.y * 0.5f + 0.5f;float b = N.z * 0.5f + 0.5f;tex2.SetPixel(i, j, new Color(r, g, b));}tex2.Apply(false);byte[] arr = tex2.EncodeToPNG();using(FileStream fs = new FileStream(Application.dataPath + "/MyTexture.png", FileMode.OpenOrCreate)){fs.Write(arr, 0, arr.Length);}Debug.Log("法线贴图创建完毕");AssetDatabase.Refresh();}
}

Unity图片转换为法线贴图相关推荐

  1. Unity高级功能—法线贴图的制作以及在代码里面进行材质上贴图的切换

    制作法线贴图还是得美术提供你几张基础的法线贴图之后,然后再去制作. 现在我们手里有两张贴图,一张是正常贴图,一张是法线贴图: 1.选择美术提供的基础的法线贴图: Tip:其中Filtering选项有的 ...

  2. Unity中的法线贴图、漫反射及高光

    我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性.在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了. 我 ...

  3. Blender图解教程:手把手教你做一个马里奥金币 之 图片转法线贴图法(附模型下载)

    <Blender图解教程:手把手教你做一个马里奥金币 之 比较传统的方法>介绍了一种用Blender制作法线贴图的流程,本文介绍一种更加省事的方法. 步骤 效果图 概要 步骤 1. 建模 ...

  4. unity shader法线贴图实现凹凸映射效果

    法线贴图 法线贴图是一张保存了物体法线信息的纹理,可以用来细化模型的光照效果. 例如一块石头表面坑坑洼洼的,如果全部用建模实现,需要非常多的顶点数和面数才能完成.但是做一个简单的模型,比如表面平整的一 ...

  5. Unity Shader法线贴图(Normal Map)及其原理

    简介 以前经常听说"模型不好看啊,怎么办啊?"答曰"加法线","做了个高模,准备烘一下法线贴图","有的美术特别屌,直接画法线贴图 ...

  6. shader 获取法线_Unity Shader 入门到改行5——法线贴图

    the best of blur 1. 法线贴图理论 1.1 什么是法线贴图 一般的贴图中存储的是表面颜色值(RGBA),而法线贴图存放的则是法线信息(xyzw),假设某顶点处的 uv 坐标为 (u, ...

  7. Esfog_UnityShader教程_NormalMap法线贴图

    咳咳,好久没有更新了,一来是这段时间很忙很忙,再来就是自己有些懒了,这个要不得啊,赶紧补上.在前面我们已经介绍过了漫反射和镜面反射,这两个是基本的光照类型,仅仅依靠它们就想制作出精美的效果是远远不够的 ...

  8. Normal map (Bump mapping) 法线贴图(凹凸映射) Standard Shader系列10

    Normal map (Bump mapping) 法线贴图(凹凸映射) 本文档主要是对Unity官方手册的个人理解与总结(其实以翻译记录为主:>) 仅作为个人学习使用,不得作为商业用途,欢迎转 ...

  9. 法线贴图Normalmap小结

    我们先讲基于世界或模型坐标的法线贴图(world/object space normal map).不常用,但是基础. 首先,请无视你之前google到的所谓通过Photoshop生成法线贴图类似文章 ...

最新文章

  1. 大学生如何合理使用计算机,大学生计算机合理使用引导分析
  2. manven需要注意点几点
  3. 【移植驱动到Linux3.4.2内核之二】LCD,触摸屏,按键,USB等驱动程序的移植心得总结
  4. 关于c语言的数据类型常量的理解
  5. 读技术书籍一定要读最经典的
  6. node 加密解密模块_跨语言(java vs python vs nodejs)的RSA加解密问题探讨
  7. Hyperledger Fabric ./byfn.sh -m up -s couchdb Error peer0.org1 failed to join the channel
  8. STM32合并烧录IAP+APP
  9. 常用连接linux工具
  10. 计算机插曲符号怎么找不到,怎么打出来简谱的符号?
  11. 移动、联通、电信三大运营商手机号段大全 附手机号正则表达式
  12. 华为人均工资高达70万,但先看看华为员工的16项标准
  13. 关于零信任的 “灵魂” 12问,企业未来如何适配“零信任”?
  14. 【高等数学】微积分----教你如何简单地推导求导公式(一)
  15. 19|雨季来临,聊些轻松的吧
  16. MySQL字符集是什么
  17. 机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据
  18. 怎样使用ApowerMirror实现将手机屏幕投屏到电脑
  19. 一键中文数据增强包 ; NLP数据增强、bert数据增强、EDA:pip install nlpcda
  20. 如何查看自己的公网ip

热门文章

  1. [CodeVS 1166] 高精度加法
  2. PPPoE简介介绍及配置
  3. 通过函数完成对结构体变量的输入和输出
  4. 【软工】Alpha阶段测试报告
  5. 魅族MX5真机调试时部分日志丢失
  6. C#画五角星、月牙形和它们相交求面积
  7. 朵唯S2l 驱动安装 刷机 Imei号找回方案(应该也适合同类国产机)
  8. 智慧社区(GIS+大数据+政府主导型智慧社区-完美的系统迭代更新至2.4版本)
  9. 打开pdf出现文件损坏并且无法修复错误解决
  10. 22个Python绘图包汇总,超实用的那种