2009年8月8日土曜日

blender - GLSLMaterialsで生成されるシェーダコード

昨日実家に帰りました。化物語おもしれええええ!!!!!むらむらとモデリングしたくなってきました。

さて本題。GLSLMaterialsで生成されるコードはこんなんだよ、というのを帰りの新幹線で見てたので、参考に載せてみる。




これが、こうなる



// ここにライブラリ的なGLSLの関数群。量が多いし、svnに普通に入ってるのでそちら参照。

// 動的に生成された vertex shader

varying vec3 varposition;
varying vec3 varnormal;

void main()
{
vec4 co = gl_ModelViewMatrix * gl_Vertex;

varposition = co.xyz;
varnormal = gl_NormalMatrix * gl_Normal;
gl_Position = gl_ProjectionMatrix * co;

}

// 動的に生成された fragment shader

varying vec3 varnormal;
varying vec3 varposition;
uniform vec3 unf8;
const float cons12 = float(29.999983);
const float cons22 = float(0.800000);
uniform vec4 unf25;
const vec4 cons29 = vec4(0.800000, 0.800000, 0.800000, 0.000000);
const float cons34 = float(50.000000);
const float cons36 = float(1.000000);
const float cons37 = float(0.500000);
uniform vec3 unf42;
const vec3 cons43 = vec3(1.000000, 1.000000, 1.000000);
const float cons52 = float(1.000000);
const float cons57 = float(1.000000);
uniform sampler1D samp0;
const float cons64 = float(1.000000);

void main(void)
{
vec3 tmp2;
vec3 tmp4;
vec3 tmp5;
vec3 tmp6;
vec3 tmp9;
float tmp10;
float tmp11;
float tmp14;
float tmp16;
float tmp19;
float tmp23;
vec4 tmp26;
vec4 tmp30;
float tmp35;
float tmp40;
vec3 tmp44;
vec4 tmp47;
vec4 tmp50;
vec4 tmp53;
vec4 tmp55;
vec4 tmp58;
vec4 tmp61;
float tmp62;
vec4 tmp65;

shade_norm(varnormal, tmp2);
shade_view(varposition, tmp4);
set_rgb_zero(tmp5);
set_rgb_zero(tmp6);
lamp_visibility_other(varposition, unf8, tmp9, tmp10, tmp11);
lamp_falloff_invlinear(cons12, tmp10, tmp14);
lamp_visibility_clamp(tmp14, tmp16);
shade_inp(tmp2, tmp9, tmp19);
shade_visifac(tmp19, tmp16, cons22, tmp23);
shade_mul_value(tmp23, unf25, tmp26);
shade_madd(vec4(tmp5, 1.0), tmp26, cons29, tmp30);
shade_cooktorr_spec(tmp2, tmp9, tmp4, cons34, tmp35);
shade_spec_t(cons36, cons37, tmp16, tmp35, tmp40);
shade_add_spec(tmp40, unf42, cons43, tmp44);
shade_add(vec4(tmp6, 1.0), vec4(tmp44, 1.0), tmp47);
shade_add(tmp30, tmp47, tmp50);
mtex_alpha_to_col(tmp50, cons52, tmp53);
shade_alpha_opaque(tmp53, tmp55);
mtex_alpha_to_col(tmp55, cons57, tmp58);
valtorgb(dot(tmp58.rgb, vec3(0.35, 0.45, 0.2)), samp0, tmp61, tmp62);
output_node(tmp61, cons64, tmp65);

gl_FragColor = tmp65;
}

0 件のコメント: