1067 lines
23 KiB
Plaintext
1067 lines
23 KiB
Plaintext
/*
|
|
--------------------------------------------------------------------------------
|
|
This source file is part of SkyX.
|
|
Visit http://www.paradise-studios.net/products/skyx/
|
|
|
|
Copyright (C) 2009-2012 Xavier Verguín González <xavyiy@gmail.com>
|
|
|
|
This program is free software; you can redistribute it and/or modify it under
|
|
the terms of the GNU Lesser General Public License as published by the Free Software
|
|
Foundation; either version 2 of the License, or (at your option) any later
|
|
version.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License along with
|
|
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
|
Place - Suite 330, Boston, MA 02111-1307, USA, or go to
|
|
http://www.gnu.org/copyleft/lesser.txt.
|
|
--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
// ------------------------- SkyX clouds -----------------------------
|
|
|
|
vertex_program SkyX_Clouds_VP_HLSL hlsl
|
|
{
|
|
source SkyX_Clouds.hlsl
|
|
entry_point main_vp
|
|
target vs_1_1
|
|
|
|
default_params
|
|
{
|
|
param_named_auto uWorldViewProj worldviewproj_matrix
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Clouds_VP_GLSL glsl
|
|
{
|
|
source SkyX_Clouds.vertex
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Clouds_VP unified
|
|
{
|
|
delegate SkyX_Clouds_VP_GLSL
|
|
delegate SkyX_Clouds_VP_HLSL
|
|
}
|
|
|
|
fragment_program SkyX_Clouds_LDR_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Clouds.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
preprocessor_defines LDR
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Clouds_LDR_FP_GLSL glsl
|
|
{
|
|
source SkyX_Clouds.fragment
|
|
preprocessor_defines LDR
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Clouds_LDR_FP unified
|
|
{
|
|
delegate SkyX_Clouds_LDR_FP_GLSL
|
|
delegate SkyX_Clouds_LDR_FP_HLSL
|
|
}
|
|
|
|
fragment_program SkyX_Clouds_HDR_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Clouds.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Clouds_HDR_FP_GLSL glsl
|
|
{
|
|
source SkyX_Clouds.fragment
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Clouds_HDR_FP unified
|
|
{
|
|
delegate SkyX_Clouds_HDR_FP_GLSL
|
|
delegate SkyX_Clouds_HDR_FP_HLSL
|
|
}
|
|
|
|
// ------------------------- SkyX volumetric clouds ------------------
|
|
|
|
vertex_program SkyX_VolClouds_VP_HLSL hlsl
|
|
{
|
|
source SkyX_VolClouds.hlsl
|
|
entry_point main_vp
|
|
target vs_1_1
|
|
|
|
default_params
|
|
{
|
|
param_named_auto uWorldViewProj worldviewproj_matrix
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_VolClouds_VP_GLSL glsl
|
|
{
|
|
source SkyX_VolClouds.vertex
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_VolClouds_VP unified
|
|
{
|
|
delegate SkyX_VolClouds_VP_HLSL
|
|
delegate SkyX_VolClouds_VP_GLSL
|
|
}
|
|
|
|
fragment_program SkyX_VolClouds_FP_HLSL hlsl
|
|
{
|
|
source SkyX_VolClouds.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_VolClouds_FP_GLSL glsl
|
|
{
|
|
source SkyX_VolClouds.fragment
|
|
|
|
default_params
|
|
{
|
|
param_named uDensity0 int 0
|
|
param_named uDensity1 int 1
|
|
param_named uNoise int 2
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_VolClouds_FP unified
|
|
{
|
|
delegate SkyX_VolClouds_FP_HLSL
|
|
delegate SkyX_VolClouds_FP_GLSL
|
|
}
|
|
|
|
material SkyX_VolClouds
|
|
{
|
|
receive_shadows off
|
|
|
|
technique
|
|
{
|
|
pass
|
|
{
|
|
lighting off
|
|
|
|
depth_write off
|
|
depth_check on
|
|
|
|
cull_hardware none
|
|
cull_software none
|
|
|
|
scene_blend alpha_blend
|
|
alpha_rejection greater 0
|
|
|
|
vertex_program_ref SkyX_VolClouds_VP
|
|
{
|
|
param_named_auto uCameraPosition camera_position_object_space
|
|
param_named uRadius float 30000
|
|
}
|
|
|
|
fragment_program_ref SkyX_VolClouds_FP
|
|
{
|
|
param_named uInterpolation float 0
|
|
param_named uSunDirection float3 0 1 0
|
|
param_named uSunColor float3 1 1 1
|
|
param_named uAmbientColor float3 0.63 0.63 0.7
|
|
param_named uLightResponse float4 0.25 0.2 1 0.1
|
|
param_named uAmbientFactors float4 0.45 0.3 0.6 1
|
|
}
|
|
|
|
texture_unit Density0
|
|
{
|
|
tex_address_mode wrap
|
|
tex_coord_set 0
|
|
}
|
|
|
|
texture_unit Density1
|
|
{
|
|
tex_address_mode wrap
|
|
tex_coord_set 1
|
|
}
|
|
|
|
texture_unit Noise
|
|
{
|
|
tex_address_mode wrap
|
|
tex_coord_set 2
|
|
texture Noise.jpg
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ---------------- SkyX volumetric clouds + lightning ------------------
|
|
|
|
vertex_program SkyX_VolClouds_Lightning_VP_HLSL hlsl
|
|
{
|
|
source SkyX_VolClouds_Lightning.hlsl
|
|
entry_point main_vp
|
|
target vs_1_1
|
|
|
|
default_params
|
|
{
|
|
param_named_auto uWorldViewProj worldviewproj_matrix
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_VolClouds_Lightning_VP_GLSL glsl
|
|
{
|
|
source SkyX_VolClouds_Lightning.vertex
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_VolClouds_Lightning_VP unified
|
|
{
|
|
delegate SkyX_VolClouds_Lightning_VP_HLSL
|
|
delegate SkyX_VolClouds_Lightning_VP_GLSL
|
|
}
|
|
|
|
fragment_program SkyX_VolClouds_Lightning_FP_HLSL hlsl
|
|
{
|
|
source SkyX_VolClouds_Lightning.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_VolClouds_Lightning_FP_GLSL glsl
|
|
{
|
|
source SkyX_VolClouds_Lightning.fragment
|
|
|
|
default_params
|
|
{
|
|
param_named uDensity0 int 0
|
|
param_named uDensity1 int 1
|
|
param_named uNoise int 2
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_VolClouds_Lightning_FP unified
|
|
{
|
|
delegate SkyX_VolClouds_Lightning_FP_HLSL
|
|
delegate SkyX_VolClouds_Lightning_FP_GLSL
|
|
}
|
|
|
|
material SkyX_VolClouds_Lightning
|
|
{
|
|
receive_shadows off
|
|
|
|
technique
|
|
{
|
|
pass
|
|
{
|
|
lighting off
|
|
|
|
depth_write off
|
|
depth_check on
|
|
|
|
cull_hardware none
|
|
cull_software none
|
|
|
|
scene_blend alpha_blend
|
|
alpha_rejection greater 0
|
|
|
|
vertex_program_ref SkyX_VolClouds_Lightning_VP
|
|
{
|
|
param_named_auto uCameraPosition camera_position_object_space
|
|
param_named uRadius float 30000
|
|
}
|
|
|
|
fragment_program_ref SkyX_VolClouds_Lightning_FP
|
|
{
|
|
param_named uInterpolation float 0
|
|
param_named uSunDirection float3 0 1 0
|
|
param_named uSunColor float3 1 1 1
|
|
param_named uAmbientColor float3 0.63 0.63 0.7
|
|
param_named uLightResponse float4 0.25 0.2 1 0.1
|
|
param_named uAmbientFactors float4 0.45 0.3 0.6 1
|
|
|
|
param_named uLightning0 float4 0 0 0 0
|
|
param_named uLightning1 float4 0 0 0 0
|
|
param_named uLightning2 float4 0 0 0 0
|
|
|
|
param_named uLightningColor float3 1 1 1
|
|
}
|
|
|
|
texture_unit Density0
|
|
{
|
|
tex_address_mode wrap
|
|
tex_coord_set 0
|
|
}
|
|
|
|
texture_unit Density1
|
|
{
|
|
tex_address_mode wrap
|
|
tex_coord_set 1
|
|
}
|
|
|
|
texture_unit Noise
|
|
{
|
|
tex_address_mode wrap
|
|
tex_coord_set 2
|
|
texture Noise.jpg
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// --------------------- SkyX skydome material ------------------------
|
|
|
|
vertex_program SkyX_Skydome_VP_HLSL hlsl
|
|
{
|
|
source SkyX_Skydome.hlsl
|
|
entry_point main_vp
|
|
target vs_2_0
|
|
|
|
default_params
|
|
{
|
|
param_named_auto uWorldViewProj worldviewproj_matrix
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Skydome_VP_GLSL glsl
|
|
{
|
|
source SkyX_Skydome.vertex
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Skydome_VP unified
|
|
{
|
|
delegate SkyX_Skydome_VP_HLSL
|
|
delegate SkyX_Skydome_VP_GLSL
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_STARFIELD_LDR_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Skydome.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
preprocessor_defines LDR,STARFIELD
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_STARFIELD_LDR_FP_GLSL glsl
|
|
{
|
|
source SkyX_Skydome.fragment
|
|
preprocessor_defines LDR=1;STARFIELD=1
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_STARFIELD_LDR_FP unified
|
|
{
|
|
delegate SkyX_Skydome_STARFIELD_LDR_FP_HLSL
|
|
delegate SkyX_Skydome_STARFIELD_LDR_FP_GLSL
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_STARFIELD_HDR_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Skydome.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
preprocessor_defines STARFIELD
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_STARFIELD_HDR_FP_GLSL glsl
|
|
{
|
|
source SkyX_Skydome.fragment
|
|
preprocessor_defines STARFIELD=1
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_STARFIELD_HDR_FP unified
|
|
{
|
|
delegate SkyX_Skydome_STARFIELD_HDR_FP_HLSL
|
|
delegate SkyX_Skydome_STARFIELD_HDR_FP_GLSL
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_LDR_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Skydome.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
preprocessor_defines LDR
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_LDR_FP_GLSL glsl
|
|
{
|
|
source SkyX_Skydome.fragment
|
|
preprocessor_defines LDR=1
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_LDR_FP unified
|
|
{
|
|
delegate SkyX_Skydome_LDR_FP_HLSL
|
|
delegate SkyX_Skydome_LDR_FP_GLSL
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_HDR_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Skydome.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_HDR_FP_GLSL glsl
|
|
{
|
|
source SkyX_Skydome.fragment
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Skydome_HDR_FP unified
|
|
{
|
|
delegate SkyX_Skydome_HDR_FP_HLSL
|
|
delegate SkyX_Skydome_HDR_FP_GLSL
|
|
}
|
|
|
|
material SkyX_Skydome_STARFIELD_LDR
|
|
{
|
|
receive_shadows off
|
|
|
|
technique
|
|
{
|
|
pass
|
|
{
|
|
lighting off
|
|
|
|
depth_write off
|
|
depth_check off
|
|
|
|
cull_hardware none
|
|
cull_software none
|
|
|
|
scene_blend alpha_blend
|
|
|
|
vertex_program_ref SkyX_Skydome_VP
|
|
{
|
|
// Must be the same as in the fragment program, normalized
|
|
param_named uLightDir float3 0 0 1
|
|
// Camera position
|
|
param_named uCameraPos float3 0 1.0001 0
|
|
|
|
// Inverse wave length (RGB: 570 nm, 540 nm and 440 nm, respectively) -> 1 / pow (0.57, 4); etc.
|
|
param_named uInvWaveLength float3 9.473284438 11.76047764 26.6802131
|
|
|
|
// Inner radius
|
|
param_named uInnerRadius float 1
|
|
|
|
param_named uKrESun float 0.32299994
|
|
param_named uKmESun float 0.350000002
|
|
param_named uKr4PI float 0.0850
|
|
param_named uKm4PI float 0.2008849557
|
|
|
|
// 1 / (OuterRadius-InnerRadius)
|
|
param_named uScale float 4
|
|
// (OuterRadius - InnerRadius) / 2.0f
|
|
param_named uScaleDepth float 0.125
|
|
// Scale / ScaleDepth;
|
|
param_named uScaleOverScaleDepth float 32
|
|
|
|
param_named uNumberOfSamples int 6
|
|
param_named uSamples float 6
|
|
}
|
|
|
|
fragment_program_ref SkyX_Skydome_STARFIELD_LDR_FP
|
|
{
|
|
param_named uTime float 0
|
|
// Must be the same as in the vertex program, normalized
|
|
param_named uLightDir float3 0 0 1
|
|
param_named uG float -0.991
|
|
param_named uG2 float 0.982081
|
|
param_named uExposure float 1.75
|
|
}
|
|
|
|
texture_unit Starfield
|
|
{
|
|
texture SkyX_Starfield.png
|
|
tex_address_mode wrap
|
|
filtering linear linear none
|
|
tex_coord_set 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
material SkyX_Skydome_STARFIELD_HDR
|
|
{
|
|
receive_shadows off
|
|
|
|
technique
|
|
{
|
|
pass
|
|
{
|
|
lighting off
|
|
|
|
depth_write off
|
|
depth_check off
|
|
|
|
cull_hardware none
|
|
cull_software none
|
|
|
|
scene_blend alpha_blend
|
|
|
|
vertex_program_ref SkyX_Skydome_VP
|
|
{
|
|
// Must be the same as in the fragment program, normalized
|
|
param_named uLightDir float3 0 0 1
|
|
// Camera position
|
|
param_named uCameraPos float3 0 1.0001 0
|
|
|
|
// Inverse wave length (RGB: 570 nm, 540 nm and 440 nm, respectively) -> 1 / pow (0.57, 4); etc.
|
|
param_named uInvWaveLength float3 9.473284438 11.76047764 26.6802131
|
|
|
|
// Inner radius
|
|
param_named uInnerRadius float 1
|
|
|
|
param_named uKrESun float 0.32299994
|
|
param_named uKmESun float 0.350000002
|
|
param_named uKr4PI float 0.0850
|
|
param_named uKm4PI float 0.2008849557
|
|
|
|
// 1 / (OuterRadius-InnerRadius)
|
|
param_named uScale float 4
|
|
// (OuterRadius - InnerRadius) / 2.0f
|
|
param_named uScaleDepth float 0.125
|
|
// Scale / ScaleDepth;
|
|
param_named uScaleOverScaleDepth float 32
|
|
|
|
param_named uNumberOfSamples int 6
|
|
param_named uSamples float 6
|
|
}
|
|
|
|
fragment_program_ref SkyX_Skydome_STARFIELD_HDR_FP
|
|
{
|
|
param_named uTime float 0
|
|
// Must be the same as in the vertex program, normalized
|
|
param_named uLightDir float3 0 0 1
|
|
param_named uG float -0.991
|
|
param_named uG2 float 0.982081
|
|
param_named uExposure float 1
|
|
}
|
|
|
|
texture_unit Starfield
|
|
{
|
|
texture SkyX_Starfield.png gamma
|
|
tex_address_mode wrap
|
|
filtering linear linear none
|
|
tex_coord_set 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
material SkyX_Skydome_LDR
|
|
{
|
|
receive_shadows off
|
|
|
|
technique
|
|
{
|
|
pass
|
|
{
|
|
lighting off
|
|
|
|
depth_write off
|
|
depth_check off
|
|
|
|
cull_hardware none
|
|
cull_software none
|
|
|
|
scene_blend alpha_blend
|
|
|
|
vertex_program_ref SkyX_Skydome_VP
|
|
{
|
|
// Must be the same as in the fragment program, normalized
|
|
param_named uLightDir float3 0 0 1
|
|
// Camera position
|
|
param_named uCameraPos float3 0 1.0001 0
|
|
|
|
// Inverse wave length (RGB: 570 nm, 540 nm and 440 nm, respectively) -> 1 / pow (0.57, 4); etc.
|
|
param_named uInvWaveLength float3 9.473284438 11.76047764 26.6802131
|
|
|
|
// Inner radius
|
|
param_named uInnerRadius float 1
|
|
|
|
param_named uKrESun float 0.32299994
|
|
param_named uKmESun float 0.350000002
|
|
param_named uKr4PI float 0.0850
|
|
param_named uKm4PI float 0.2008849557
|
|
|
|
// 1 / (OuterRadius-InnerRadius)
|
|
param_named uScale float 4
|
|
// (OuterRadius - InnerRadius) / 2.0f
|
|
param_named uScaleDepth float 0.125
|
|
// Scale / ScaleDepth;
|
|
param_named uScaleOverScaleDepth float 32
|
|
|
|
param_named uNumberOfSamples int 6
|
|
param_named uSamples float 6
|
|
}
|
|
|
|
fragment_program_ref SkyX_Skydome_LDR_FP
|
|
{
|
|
// Must be the same as in the vertex program, normalized
|
|
param_named uLightDir float3 0 0 1
|
|
param_named uG float -0.991
|
|
param_named uG2 float 0.982081
|
|
param_named uExposure float 1.75
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
material SkyX_Skydome_HDR
|
|
{
|
|
receive_shadows off
|
|
|
|
technique
|
|
{
|
|
pass
|
|
{
|
|
lighting off
|
|
|
|
depth_write off
|
|
depth_check off
|
|
|
|
cull_hardware none
|
|
cull_software none
|
|
|
|
scene_blend alpha_blend
|
|
|
|
vertex_program_ref SkyX_Skydome_VP
|
|
{
|
|
// Must be the same as in the fragment program, normalized
|
|
param_named uLightDir float3 0 0 1
|
|
// Camera position
|
|
param_named uCameraPos float3 0 1.0001 0
|
|
|
|
// Inverse wave length (RGB: 570 nm, 540 nm and 440 nm, respectively) -> 1 / pow (0.57, 4); etc.
|
|
param_named uInvWaveLength float3 9.473284438 11.76047764 26.6802131
|
|
|
|
// Inner radius
|
|
param_named uInnerRadius float 1
|
|
|
|
param_named uKrESun float 0.32299994
|
|
param_named uKmESun float 0.350000002
|
|
param_named uKr4PI float 0.0850
|
|
param_named uKm4PI float 0.2008849557
|
|
|
|
// 1 / (OuterRadius-InnerRadius)
|
|
param_named uScale float 4
|
|
// (OuterRadius - InnerRadius) / 2.0f
|
|
param_named uScaleDepth float 0.125
|
|
// Scale / ScaleDepth;
|
|
param_named uScaleOverScaleDepth float 32
|
|
|
|
param_named uNumberOfSamples int 6
|
|
param_named uSamples float 6
|
|
}
|
|
|
|
fragment_program_ref SkyX_Skydome_HDR_FP
|
|
{
|
|
// Must be the same as in the vertex program, normalized
|
|
param_named uLightDir float3 0 0 1
|
|
param_named uG float -0.991
|
|
param_named uG2 float 0.982081
|
|
param_named uExposure float 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// --------------------- SkyX moon material ------------------------
|
|
|
|
vertex_program SkyX_Moon_VP_HLSL hlsl
|
|
{
|
|
source SkyX_Moon.hlsl
|
|
entry_point main_vp
|
|
target vs_1_1
|
|
|
|
default_params
|
|
{
|
|
param_named_auto uWorldViewProj worldviewproj_matrix
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Moon_VP_GLSL glsl
|
|
{
|
|
source SkyX_Moon.vertex
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Moon_VP unified
|
|
{
|
|
delegate SkyX_Moon_VP_GLSL
|
|
delegate SkyX_Moon_VP_HLSL
|
|
}
|
|
|
|
fragment_program SkyX_Moon_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Moon.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Moon_FP_GLSL glsl
|
|
{
|
|
source SkyX_Moon.fragment
|
|
|
|
default_params
|
|
{
|
|
param_named uMoon int 0
|
|
param_named uMoonHalo int 1
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Moon_FP unified
|
|
{
|
|
delegate SkyX_Moon_FP_GLSL
|
|
delegate SkyX_Moon_FP_HLSL
|
|
}
|
|
|
|
material SkyX_Moon
|
|
{
|
|
receive_shadows off
|
|
|
|
technique
|
|
{
|
|
pass
|
|
{
|
|
lighting off
|
|
|
|
depth_write off
|
|
depth_check off
|
|
|
|
scene_blend alpha_blend
|
|
|
|
vertex_program_ref SkyX_Moon_VP
|
|
{
|
|
param_named_auto uWorld world_matrix
|
|
param_named uSkydomeCenter float3 0 0 0
|
|
}
|
|
|
|
fragment_program_ref SkyX_Moon_FP
|
|
{
|
|
param_named uMoonPhase float3 0.25 0.6 1
|
|
param_named uMoonHalo1 float3 0.25 0.5 1
|
|
param_named uMoonHalo2 float3 0 0 0
|
|
param_named uMoonHaloFlip float 0
|
|
}
|
|
|
|
texture_unit Moon
|
|
{
|
|
texture SkyX_Moon.png
|
|
tex_coord_set 0
|
|
tex_address_mode clamp
|
|
}
|
|
|
|
texture_unit MoonHalo
|
|
{
|
|
texture SkyX_MoonHalo.png
|
|
tex_coord_set 1
|
|
tex_address_mode clamp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// --------------------- SkyX lightning material ------------------------
|
|
|
|
vertex_program SkyX_Lightning_VP_HLSL hlsl
|
|
{
|
|
source SkyX_Lightning.hlsl
|
|
entry_point main_vp
|
|
target vs_1_1
|
|
|
|
default_params
|
|
{
|
|
param_named_auto uWorldViewProj worldviewproj_matrix
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Lightning_VP_GLSL glsl
|
|
{
|
|
source SkyX_Lightning.vertex
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Lightning_VP unified
|
|
{
|
|
delegate SkyX_Lightning_VP_GLSL
|
|
delegate SkyX_Lightning_VP_HLSL
|
|
}
|
|
|
|
fragment_program SkyX_Lightning_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Lightning.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Lightning_FP_GLSL glsl
|
|
{
|
|
source SkyX_Lightning.fragment
|
|
|
|
default_params
|
|
{
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Lightning_FP unified
|
|
{
|
|
delegate SkyX_Lightning_FP_GLSL
|
|
delegate SkyX_Lightning_FP_HLSL
|
|
}
|
|
|
|
material SkyX_Lightning
|
|
{
|
|
receive_shadows off
|
|
|
|
technique
|
|
{
|
|
pass
|
|
{
|
|
lighting off
|
|
|
|
scene_blend add
|
|
scene_blend_op max
|
|
|
|
depth_write on
|
|
depth_check off
|
|
|
|
vertex_program_ref SkyX_Lightning_VP
|
|
{
|
|
param_named_auto uData custom 0
|
|
}
|
|
|
|
fragment_program_ref SkyX_Lightning_FP
|
|
{
|
|
param_named uColor float3 1 1 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// --------------------- SkyX ground material ------------------------
|
|
|
|
vertex_program SkyX_Ground_VP_HLSL hlsl
|
|
{
|
|
source SkyX_Ground.hlsl
|
|
entry_point main_vp
|
|
target vs_2_0
|
|
|
|
default_params
|
|
{
|
|
param_named_auto uWorldViewProj worldviewproj_matrix
|
|
param_named_auto uWorld world_matrix
|
|
param_named_auto uCameraPos_ camera_position
|
|
|
|
// Must be the same as in the fragment program, normalized
|
|
param_named uLightDir float3 1 0 0
|
|
// Camera position
|
|
param_named uCameraPos float3 0 1.0001 0
|
|
|
|
// Inverse wave length (RGB: 570 nm, 540 nm and 440 nm, respectively) -> 1 / pow (0.57, 4); etc.
|
|
param_named uInvWaveLength float3 9.473284438 11.76047764 26.6802131
|
|
|
|
// Inner radius
|
|
param_named uInnerRadius float 1
|
|
|
|
param_named uKrESun float 0.32299994
|
|
param_named uKr4PI float 0.0850
|
|
param_named uKm4PI float 0.2008849557
|
|
|
|
// 1 / (OuterRadius-InnerRadius)
|
|
param_named uScale float 4
|
|
// (OuterRadius - InnerRadius) / 2.0f
|
|
param_named uScaleDepth float 0.125
|
|
// Scale / ScaleDepth;
|
|
param_named uScaleOverScaleDepth float 32
|
|
param_named uSkydomeRadius float 2850
|
|
|
|
param_named uNumberOfSamples int 6
|
|
param_named uSamples float 6
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Ground_VP_GLSL glsl
|
|
{
|
|
source SkyX_Ground.vertex
|
|
|
|
default_params
|
|
{
|
|
param_named_auto uWorld world_matrix
|
|
param_named_auto uCameraPos_ camera_position
|
|
|
|
// Must be the same as in the fragment program, normalized
|
|
param_named uLightDir float3 1 0 0
|
|
// Camera position
|
|
param_named uCameraPos float3 0 1.0001 0
|
|
|
|
// Inverse wave length (RGB: 570 nm, 540 nm and 440 nm, respectively) -> 1 / pow (0.57, 4); etc.
|
|
param_named uInvWaveLength float3 9.473284438 11.76047764 26.6802131
|
|
|
|
// Inner radius
|
|
param_named uInnerRadius float 1
|
|
|
|
param_named uKrESun float 0.32299994
|
|
param_named uKr4PI float 0.0850
|
|
param_named uKm4PI float 0.2008849557
|
|
|
|
// 1 / (OuterRadius-InnerRadius)
|
|
param_named uScale float 4
|
|
// (OuterRadius - InnerRadius) / 2.0f
|
|
param_named uScaleDepth float 0.125
|
|
// Scale / ScaleDepth;
|
|
param_named uScaleOverScaleDepth float 32
|
|
param_named uSkydomeRadius float 2850
|
|
|
|
param_named uNumberOfSamples int 6
|
|
param_named uSamples float 6
|
|
}
|
|
}
|
|
|
|
vertex_program SkyX_Ground_VP unified
|
|
{
|
|
delegate SkyX_Ground_VP_GLSL
|
|
delegate SkyX_Ground_VP_HLSL
|
|
}
|
|
|
|
fragment_program SkyX_Ground_LDR_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Ground.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
preprocessor_defines LDR
|
|
|
|
default_params
|
|
{
|
|
param_named uExposure float 1.75
|
|
|
|
param_named uLightDir float3 0 0 1
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Ground_LDR_FP_GLSL glsl
|
|
{
|
|
source SkyX_Ground.fragment
|
|
|
|
default_params
|
|
{
|
|
param_named uExposure float 1.75
|
|
|
|
param_named uLightDir float3 0 0 1
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Ground_LDR_FP unified
|
|
{
|
|
delegate SkyX_Ground_LDR_FP_GLSL
|
|
delegate SkyX_Ground_LDR_FP_HLSL
|
|
}
|
|
|
|
fragment_program SkyX_Ground_HDR_FP_HLSL hlsl
|
|
{
|
|
source SkyX_Ground.hlsl
|
|
entry_point main_fp
|
|
target ps_2_0
|
|
|
|
default_params
|
|
{
|
|
param_named uLightDir float3 0 0 1
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Ground_HDR_FP_GLSL glsl
|
|
{
|
|
source SkyX_Ground.fragment
|
|
|
|
default_params
|
|
{
|
|
param_named uLightDir float3 0 0 1
|
|
}
|
|
}
|
|
|
|
fragment_program SkyX_Ground_HDR_FP unified
|
|
{
|
|
delegate SkyX_Ground_HDR_FP_GLSL
|
|
delegate SkyX_Ground_HDR_FP_HLSL
|
|
} |