ノーマルマップを重ねてみた 

WS000000_20141009011459dc3.jpg
複数のテクスチャを重ねられるなら、ノーマルマップもおそらく大丈夫だろうとやってみた。
6個以上にするとエラーになったので、5つまで作れた。

岩や壁とかのデコボコを、より複雑にしたいときに有効かもしれない。
5個使うのはふざけてるけど、2個つかってみるのもいいと思う。

続きを読む
スポンサーサイト

[2014/10/09 01:27] 未分類 | TB(0) | CM(0)

セブンシェーダー 

シェーダーに慣れるために、シェーダーいじり。
実用性があるかは疑問があるけど、偏ってて面白そうなものを作ろうと思ったわけです。
単純に、たくさんのテクスチャーが張りまくれるシェーダーはどうか。
でもやってみると、7枚よりも多く盛ろうとした時点で、エラーになりました。
まあ、7枚もいらないけどね・・・。

こんなものでも、使い道を見出せるぜっていう奇特な方は、どうぞお持ち帰りください。
3枚張りぐらいなら実用性はあるかもしれないし、改造用にもどうぞ。

WS000000_2014100801200057c.jpg

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

Shader "kinoko/SevenTexture" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
_MainTex2 ("Texture2", 2D) = "white" {}
_MainTex3 ("Texture3", 2D) = "white" {}
_MainTex4 ("Texture4", 2D) = "white" {}
_MainTex5 ("Texture5", 2D) = "white" {}
_MainTex6 ("Texture6", 2D) = "white" {}
_MainTex7 ("Texture7", 2D) = "white" {}
_ColorTint ("Tint", Color) = (1.0, 0.6, 0.6, 1.0)
}
SubShader {
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf Lambert finalcolor:mycolor
struct Input {
float2 uv_MainTex;
float2 uv_MainTex2;
float2 uv_MainTex3;
float2 uv_MainTex4;
float2 uv_MainTex5;
float2 uv_MainTex6;
float2 uv_MainTex7;
};
fixed4 _ColorTint;
void mycolor (Input IN, SurfaceOutput o, inout fixed4 color)
{
color *= _ColorTint;
}
sampler2D _MainTex;
sampler2D _MainTex2;
sampler2D _MainTex3;
sampler2D _MainTex4;
sampler2D _MainTex5;
sampler2D _MainTex6;
sampler2D _MainTex7;


void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
o.Albedo+= tex2D (_MainTex2, IN.uv_MainTex2).rgb;
o.Albedo+= tex2D (_MainTex3, IN.uv_MainTex3).rgb;
o.Albedo+= tex2D (_MainTex4, IN.uv_MainTex4).rgb;
o.Albedo+= tex2D (_MainTex5, IN.uv_MainTex5).rgb;
o.Albedo+= tex2D (_MainTex6, IN.uv_MainTex6).rgb;
o.Albedo+= tex2D (_MainTex7, IN.uv_MainTex7).rgb;
}

ENDCG
}
Fallback "Diffuse"
}


・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・



[2014/10/08 01:33] 未分類 | TB(0) | CM(0)

スプライトも3Dゲームで使っちゃうよ。 

1003.png
WS000000_201410030009413ed.jpg

2Dゲーム用のスプライトを、3Dゲームでも使えそうだなーと思ってやってみた。
でもスプライトは描写する順番にルールがあって、それを無視したら悲しいことになりました。
そもそも2D用の機能なので、そのまま設置すると遠近感がアベコベになります。

でももうひとつ困ったことは、スプライトは、半透明のオブジェクトとの相性が悪いことです。
これも描写順が関係してるみたいだけど、うまく説明できないので割愛。解決策も見つからなかった。

スプライトの近くには、半透明のものを置かないことにして対策します。

半透明の件はとりあえず横に置いといて、遠近感の問題はグーグルさんの力を借りて解決しました。
renderer.sortingOrderっていう関数を使えば、スプライトのレイヤーの値をいじれるっぽいです。
カメラとの距離が遠いスプライトには小さい数値を、近いものには大きな数値をぶち込めばOKでした。
[2014/10/03 00:59] 未分類 | TB(0) | CM(0)




カラメルプリンの大冒険(525円)



鹿の缶詰(525円)