1. 程式人生 > >unity雙面材質攻略

unity雙面材質攻略

轉載:http://game.ceeger.com/forum/read.php?tid=3024

Unity內建的Shader,都是單面效果,想必匯入Mesh的同學都碰到過這樣的痛苦,布料飄起的背面部分看起來是空氣,汽車透過車窗看到是路面...各種蛋疼。
有些文章教導大家 把模型做出厚度來吧,這種做法實在太那個啥了......

其實用改寫Shader的方法可以很方便的實現雙面材質。
Unity裡有3種Shader方式:
1.Fixed Function Shaders 
2.Vertex and Fragment Shaders
3. Surface Shaders
關於這部分的詳細介紹,請參考官方的教程。


這三種方式裡,都可以通過直接在Shader程式碼頭部新增一個Cull off 語句,實現強制雙面渲染。
但是直接用Cull off的方式 有個重大的缺陷,這材質從兩面看無論貼圖、顏色、反光、照明情況,都是一模一樣的,這並不符合大多數實際情況的常識。
在第1和第2種Shader裡,是可以通過在一個渲染子程式裡用兩個渲染Pass來實現雙面不同效果的,這部分網上的資料也很多,寫起來也很簡單直接。

這裡主要討論的是第三種也是最常用的Surface Shader的雙面不同效果的實現。
Surface Shader是不能寫在Pass裡的,所以要實現它的雙面不同效果就要用其他變通的辦法。

首先去Unity官方網站下載一個內建Shader的程式碼包,連結如下:

http://unity3d.com/download_unity/builtin_shaders.zip
開啟後看見一堆.shader檔案,可以用任何文字編輯器開啟。可以看見系統內建的Shader基本都是Surface方式。
這裡隨便開啟一個Normal-BumpSpec.Shader 這是普通的高光-凹凸貼圖材質

複製程式碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Shader "Bumped Specular" { Properties { _Color ("Main Color", Color) = (1,1,1,1) _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1) _Shininess ("Shininess", Range (0.03, 1)) = 0.078125 _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {} _BumpMap ("Normalmap", 2D) = "bump" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 400 CGPROGRAM #pragma surface surf BlinnPhong sampler2D _MainTex; sampler2D _BumpMap; fixed4 _Color; half _Shininess; struct Input { float2 uv_MainTex; float2 uv_BumpMap; }; void surf (Input IN, inout SurfaceOutput o) { fixed4 tex = tex2D(_MainTex, IN.uv_MainTex); o.Albedo = tex.rgb * _Color.rgb; o.Gloss = tex.a; o.Alpha = tex.a * _Color.a; o.Specular = _Shininess; o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); } ENDCG } FallBack "Specular"

相關推薦

unity雙面材質

轉載:http://game.ceeger.com/forum/read.php?tid=3024 Unity內建的Shader,都是單面效果,想必匯入Mesh的同學都碰到過這樣的痛苦,布料飄起的背面部分看起來是空氣,汽車透過車窗看到是路面...各種蛋疼。 有些文

Unity雙面材質

Unity內建的Shader,都是單面效果,想必匯入Mesh的同學都碰到過這樣的痛苦,布料飄起的背面部分看起來是空氣,汽車透過車窗看到是路面...各種蛋疼。 有些文章教導大家 把模型做出厚度來吧,這種做法實在太那個啥了......   其實用改寫Shader的方法可以很方便的實現雙面材質。

UE製作PBR材質Part 1 - 色彩知識

目錄 一、前言 二、色彩知識 2.1 色彩理論 2.1.1 成像原理 2.1.2 色彩模型和色彩空間 2.1.3 色彩屬性 2.1.4 直方圖

Unity 製作燈罩 雙面材質背面不受光照影響的解決方法

     最近開發一個Unity專案主要是打算模擬一下燈效果,本以為把一個光源放入我們的燈的模型中就可以完美解決問題,然而當開始操作的時候,真的是困難重重,套在模型裡面的點光源根本無法照亮外面的模型!            我們可以發現,這個光源可以在外面照亮這個立方體

IT職業發展(技術僅是工具而已)

困境 將不 一位 實用 做到 工作計劃 們的 人的 說明 時光飛逝,我事業中第一個十年就快結束了。在這十年裏,讓我收獲了很多,今天想與大家分享一下,我在 IT 職場方面的一些個人經驗,不一定對每個人都實用,請大家僅作參考吧。 大家既然都是做技術的,那我們不妨先從技術這

zabbix接入百度告警詳細

zabbix 百度告警 詳細 第一章:百度告警端配置首先需要申請百度告警賬號,使用以下鏈接註冊百度告警賬號:http://gaojing.baidu.com/#/register輸入郵箱後,點擊驗證註冊碼,所註冊的郵箱會收到一封來自百度告警平臺的驗證碼:賬號註冊完成後來到登錄界面,依次分別驗證手機

《Linux深度》一書,講述Linux日常系統管理和服務器配置內容

linuxLinux深度攻略 首先從介紹Linux系統的安裝入手,講述了Linux系統管理和服務器配置兩部分的知識。系統管理方面內容有Linux系統簡介和安裝,Linux字符界面,目錄和文件管理,Linux常用命令,Shell編程,用戶和組群賬戶管理,權限、所有者和ACL,歸檔、壓縮和備份,軟件包管理,磁盤和

【轉】簡明 Vim 練級

優秀 super 換行 下劃線 分屏 內容 改變 鼠標 cool 原文出處: yannesposito 譯文出處:陳晧 Vim的學習曲線相當的大,所以,如果你一開始看到的是一大堆VIM的命令分類,你一定會對這個編輯器失去興趣的。下面的文章翻譯自《Learn Vim

Windows勒索病毒防範、解決方法全

windowsxp 殺毒軟件 金山毒霸 下載地址 官方下載 【防禦措施建議】1、安裝殺毒軟件,保持安全防禦功能開啟,比如金山毒霸已可攔截(下載地址http://www.duba.net),微軟自帶的WindowsDefender也可以。2、打開Windows Update自動更新,及時升級

Linux一鍵安裝web環境全(阿裏雲ECS服務器)

傳輸 80端口 掛載 iyu 使用 ftp服務 老版本 雲服務 linux服務 摘自阿裏雲服務器官網,此處 一鍵安裝包下載: 點此下載 安裝須知 1、此安裝包可在阿裏雲所有linux系統上部署安裝,此安裝包包含的軟件及版本為: nginx:1.0.15、1.2.5、1.4.

小巧數據庫 Apache Derby 使用

數據庫1. Derby 介紹 將目光放在小 Derby 的原因是純綠色、輕巧、內存占用小,分分鐘在你機子跑起來,自己做點需要連接數據庫的代碼實踐非常方便。 雖然 Mysql 也可以,多一種選擇,不是也挺好麽? Apache Derby是一個完全用 java 編寫的數據庫,Derby是一個Open

android屏幕適配的全

屏幕分辨率 縮放 img 關系 我們 http 分辨 tro pix 一. 核心概念與單位詳解 1. 什麽是屏幕尺寸、屏幕分辨率、屏幕像素密度? 屏幕分辨率越大,手機越清晰 2. 什麽是dp、dip、dpi、sp、px?之間的關系是什麽? dip:Density

輕松學習之Linux教程四 神器vi程序編輯器

分享 內置 snippet 2014年 答案 程序 ice 界面 fff 本系列文章由@超人愛因斯坦出品,轉載請註明出處。 文章鏈接: http://hpw123.net/a/Linux/Linuxjichu/2014

性能調優

池化 cast real 設計 nosql iptraf chan rsync 什麽是 關於性能優化這是一個比較大的話題,在《由12306.cn談談網站性能技術》中我從業務和設計上說過一些可用的技術以及那些技術的優缺點,今天,想從一些技術細節上談談性能優化,主要是一些

【codecombat 中國】--邊遠地區的深林--森林劈裂者

codec script 代碼 sre else png 技術 普通 敵人 代碼語言:javascript 目標:抵禦食人魔;代碼沒有錯誤; 參考代碼: // 盡可能經常使用你的新技能“cleave” hero.moveXY(23, 23);while(true) {

CSS 初級

ctype val div 文字 rsquo 會有 ack -1 大小 內容來自html dog. css的格式為 ‘property: value’ 給html插入css樣式的方式有三種:內聯、內部css、外部css文件,如下所示:

C語言指南(三)流程控制篇

... cpp 流程控制 printf 循環結構 多重 -a 1-43 continue 流程控制語句,或者說控制流語句,是用於控制程序計算操作執行的次序,使我們能實現判斷,選擇,循環等操作。本篇將逐一描述 C語言中的流程控制語句。 選擇結構 if 語句 if(表達式

Linux編程之UDP SOCKET全

應用場景 什麽是 vid 結構體指針 from 好的 conn 能力 cnblogs 這篇文章將對linux下udp socket編程重要知識點進行總結,無論是開發人員應知應會的,還是說udp socket的一些偏僻知識點,本文都會講到。盡可能做到,讀了一篇文章之後,大家對

【Head First Servlets and JSP】筆記23:Expression Language(EL) 完全

首部 基本 light == 命名 shm sign pack index 基本上是《Head First Servlets and JSP》內容的整理、擴充。順便推薦一個供參考的JSP教程:JSP Tutorial 內容很全面,還有一些有趣的實例。 完整代碼參考

Linux實戰第一篇:Centos6.9/RHEL6.9詳細安裝(LVM)

linux個人筆記分享(在線閱讀):http://note.youdao.com/noteshare?id=bb2ad6216bff8cddaa3e360c76392c9b PDF版本下載http://down.51cto.com/data/2321269本文出自 “人才雞雞” 博客,請務必保留此出處http