本文整理汇总了C++中CBlender_Compile::r_Sampler_clf方法的典型用法代码示例。如果您正苦于以下问题:C++ CBlender_Compile::r_Sampler_clf方法的具体用法?C++ CBlender_Compile::r_Sampler_clf怎么用?C++ CBlender_Compile::r_Sampler_clf使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBlender_Compile
的用法示例。
在下文中一共展示了CBlender_Compile::r_Sampler_clf方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void CBlender_deffer_aref::Compile(CBlender_Compile& C)
{
IBlender::Compile (C);
// oBlend.value = FALSE ;
if (oBlend.value) {
switch(C.iElement)
{
case SE_R2_NORMAL_HQ:
case SE_R2_NORMAL_LQ:
if (lmapped) {
C.r_Pass ("lmapE","lmapE",TRUE,TRUE,FALSE,TRUE,D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE, oAREF.value);
C.r_Sampler ("s_base", C.L_textures[0] );
C.r_Sampler ("s_lmap", C.L_textures[1] );
C.r_Sampler_clf ("s_hemi", *C.L_textures[2]);
C.r_Sampler ("s_env", r2_T_envs0, false,D3DTADDRESS_CLAMP);
C.r_End ();
} else {
C.r_Pass ("vert", "vert", TRUE,TRUE,FALSE,TRUE,D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE, oAREF.value);
C.r_Sampler ("s_base", C.L_textures[0] );
C.r_End ();
}
break;
default:
break;
}
} else {
C.SetParams (1,false); //.
// codepath is the same, only the shaders differ
// ***only pixel shaders differ***
switch(C.iElement)
{
case SE_R2_NORMAL_HQ: // deffer
uber_deffer (C,true,"base","base",true);
break;
case SE_R2_NORMAL_LQ: // deffer
uber_deffer (C,false,"base","base",true);
break;
case SE_R2_SHADOW: // smap
if (RImplementation.o.HW_smap) C.r_Pass ("shadow_direct_base_aref","shadow_direct_base_aref",FALSE,TRUE,TRUE,FALSE,D3DBLEND_ZERO,D3DBLEND_ONE,TRUE,220);
else C.r_Pass ("shadow_direct_base_aref","shadow_direct_base_aref",FALSE);
C.r_Sampler ("s_base",C.L_textures[0]);
C.r_End ();
break;
}
}
}
示例2:
void CBlender_luminance::Compile(CBlender_Compile& C)
{
IBlender::Compile (C);
switch (C.iElement)
{
case 0: // 256x256 => 64x64
C.r_Pass ("null", "bloom_luminance_1",false,FALSE,FALSE, FALSE);
C.r_Sampler_clf ("s_image", r2_RT_bloom1);
C.r_End ();
break;
case 1: // 64x64 => 8x8
C.r_Pass ("null", "bloom_luminance_2",false,FALSE,FALSE, FALSE);
C.r_Sampler_clf ("s_image", r2_RT_luminance_t64);
C.r_End ();
break;
case 2: // 8x8 => 1x1, blending with old result
C.r_Pass ("null", "bloom_luminance_3",false,FALSE,FALSE, FALSE);
C.r_Sampler_clf ("s_image", r2_RT_luminance_t8 );
C.r_Sampler_clf ("s_tonemap", r2_RT_luminance_src );
C.r_End ();
break;
}
}
示例3:
void CBlender_accum_spot::Compile(CBlender_Compile& C)
{
IBlender::Compile (C);
BOOL b_HW_smap = RImplementation.o.HW_smap;
BOOL b_HW_PCF = RImplementation.o.HW_smap_PCF;
BOOL blend = RImplementation.o.fp16_blend;
D3DBLEND dest = blend?D3DBLEND_ONE:D3DBLEND_ZERO;
switch (C.iElement)
{
case SE_L_FILL: // masking
C.r_Pass ("null", "copy", false, FALSE, FALSE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_End ();
break;
case SE_L_UNSHADOWED: // unshadowed
C.r_Pass ("accum_volume", "accum_spot_unshadowed", false, FALSE,FALSE,blend,D3DBLEND_ONE,dest);
C.r_Sampler_rtf ("s_position", r2_RT_P);
C.r_Sampler_rtf ("s_normal", r2_RT_N);
C.r_Sampler_clw ("s_material", r2_material);
C.r_Sampler ("s_lmap", C.L_textures[0],false,D3DTADDRESS_CLAMP);
C.r_Sampler_rtf ("s_accumulator", r2_RT_accum );
C.r_End ();
break;
case SE_L_NORMAL: // normal
C.r_Pass ("accum_volume", "accum_spot_normal", false, FALSE,FALSE,blend,D3DBLEND_ONE,dest);
C.r_Sampler_rtf ("s_position", r2_RT_P);
C.r_Sampler_rtf ("s_normal", r2_RT_N);
C.r_Sampler_clw ("s_material", r2_material);
C.r_Sampler ("s_lmap", C.L_textures[0],false,D3DTADDRESS_CLAMP);
if (b_HW_smap) {
if (b_HW_PCF) C.r_Sampler_clf ("s_smap",r2_RT_smap_depth );
else C.r_Sampler_rtf ("s_smap",r2_RT_smap_depth );
}
else C.r_Sampler_rtf ("s_smap",r2_RT_smap_surf );
jitter (C);
C.r_Sampler_rtf ("s_accumulator", r2_RT_accum );
C.r_End ();
break;
case SE_L_FULLSIZE: // normal-fullsize
C.r_Pass ("accum_volume", "accum_spot_fullsize", false, FALSE,FALSE,blend,D3DBLEND_ONE,dest);
C.r_Sampler_rtf ("s_position", r2_RT_P);
C.r_Sampler_rtf ("s_normal", r2_RT_N);
C.r_Sampler_clw ("s_material", r2_material);
C.r_Sampler ("s_lmap", C.L_textures[0],false,D3DTADDRESS_CLAMP);
if (b_HW_smap) {
if (b_HW_PCF) C.r_Sampler_clf ("s_smap",r2_RT_smap_depth );
else C.r_Sampler_rtf ("s_smap",r2_RT_smap_depth );
}
else C.r_Sampler_rtf ("s_smap",r2_RT_smap_surf );
jitter (C);
C.r_Sampler_rtf ("s_accumulator", r2_RT_accum );
C.r_End ();
break;
case SE_L_TRANSLUENT: // shadowed + transluency
C.r_Pass ("accum_volume", "accum_spot_fullsize", false, FALSE,FALSE,blend,D3DBLEND_ONE,dest);
C.r_Sampler_rtf ("s_position", r2_RT_P);
C.r_Sampler_rtf ("s_normal", r2_RT_N);
C.r_Sampler_clw ("s_material", r2_material);
C.r_Sampler_clf ("s_lmap", r2_RT_smap_surf); // diff here
if (b_HW_smap) {
if (b_HW_PCF) C.r_Sampler_clf ("s_smap",r2_RT_smap_depth );
else C.r_Sampler_rtf ("s_smap",r2_RT_smap_depth );
}
else C.r_Sampler_rtf ("s_smap",r2_RT_smap_surf );
C.r_Sampler_rtf ("s_accumulator", r2_RT_accum );
jitter (C);
C.r_End ();
break;
}
}
示例4: switch
void CBlender_Vertex::Compile (CBlender_Compile& C)
{
IBlender::Compile (C);
if (C.bEditor)
{
// Editor shader
C.PassBegin ();
{
C.PassSET_ZB (TRUE,TRUE);
C.PassSET_Blend (FALSE,D3DBLEND_ONE,D3DBLEND_ZERO, FALSE,0);
C.PassSET_LightFog (TRUE,TRUE);
// Stage0 - Base texture
C.StageBegin ();
C.StageSET_Color (D3DTA_TEXTURE, D3DTOP_MODULATE, D3DTA_DIFFUSE);
C.StageSET_Alpha (D3DTA_TEXTURE, D3DTOP_MODULATE, D3DTA_DIFFUSE);
C.Stage_Texture (oT_Name);
C.Stage_Matrix (oT_xform,0);
C.Stage_Constant ("$null");
C.StageEnd ();
}
C.PassEnd ();
} else {
switch (C.iElement)
{
case SE_R1_NORMAL_HQ:
// Level view
if (C.bDetail_Diffuse)
{
C.r_Pass ("vert_dt","vert_dt",TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler ("s_detail",C.detail_texture);
C.r_End ();
} else {
C.r_Pass ("vert","vert",TRUE);
C.r_Sampler ("s_base",C.L_textures[0]);
C.r_End ();
}
break;
case SE_R1_NORMAL_LQ:
// Level view
C.r_Pass ("vert","vert",TRUE);
C.r_Sampler ("s_base",C.L_textures[0]);
C.r_End ();
break;
case SE_R1_LPOINT:
C.r_Pass ("vert_point","add_point",FALSE,TRUE,FALSE,TRUE,D3DBLEND_ONE,D3DBLEND_ONE,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler_clf ("s_lmap", TEX_POINT_ATT );
C.r_Sampler_clf ("s_att", TEX_POINT_ATT );
C.r_End ();
break;
case SE_R1_LSPOT:
C.r_Pass ("vert_spot","add_spot",FALSE,TRUE,FALSE,TRUE,D3DBLEND_ONE,D3DBLEND_ONE,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler_clf ("s_lmap", "internal\\internal_light_att", true);
C.r_Sampler_clf ("s_att", TEX_SPOT_ATT );
C.r_End ();
break;
case SE_R1_LMODELS:
// Lighting only
C.r_Pass ("vert_l","vert_l",FALSE);
C.r_Sampler ("s_base",C.L_textures[0]);
C.r_End ();
break;
}
}
}
示例5:
void CBlender_Model::Compile (CBlender_Compile& C)
{
IBlender::Compile (C);
if (C.bEditor)
{
C.PassBegin ();
{
C.PassSET_ZB (TRUE,oBlend.value&&(oAREF.value<200)?FALSE:TRUE);
if (oBlend.value) C.PassSET_Blend_BLEND (TRUE,oAREF.value);
else C.PassSET_Blend_SET ();
C.PassSET_LightFog (TRUE,TRUE);
C.StageBegin ();
C.StageSET_Color (D3DTA_TEXTURE, D3DTOP_MODULATE, D3DTA_DIFFUSE);
C.StageSET_Alpha (D3DTA_TEXTURE, D3DTOP_SELECTARG1, D3DTA_DIFFUSE);
C.StageSET_TMC (oT_Name, "$null", "$null", 0 );
C.StageEnd ();
}
C.PassEnd ();
} else {
LPCSTR vsname = 0;
LPCSTR psname = 0;
switch (C.iElement)
{
case SE_R1_NORMAL_HQ:
vsname = psname = "model_def_hq";
if (oBlend.value) C.r_Pass (vsname,psname,TRUE,TRUE,TRUE,TRUE,D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE,oAREF.value);
else C.r_Pass (vsname,psname,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler_clf ("s_lmap", "$user$projector",true);
C.r_End ();
break;
case SE_R1_NORMAL_LQ:
vsname = psname = "model_def_lq";
if (oBlend.value) C.r_Pass (vsname,psname,TRUE,TRUE,TRUE,TRUE,D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE,oAREF.value);
else C.r_Pass (vsname,psname,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_End ();
break;
case SE_R1_LPOINT:
vsname = "model_def_point";
psname = "add_point";
if (oBlend.value) C.r_Pass (vsname,psname,FALSE,TRUE,FALSE,TRUE,D3DBLEND_ONE, D3DBLEND_ONE,TRUE,oAREF.value);
else C.r_Pass (vsname,psname,FALSE,TRUE,FALSE,TRUE,D3DBLEND_ONE, D3DBLEND_ONE,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler_clf ("s_lmap", TEX_POINT_ATT);
C.r_Sampler_clf ("s_att", TEX_POINT_ATT);
C.r_End ();
break;
case SE_R1_LSPOT:
vsname = "model_def_spot";
psname = "add_spot";
if (oBlend.value) C.r_Pass (vsname,psname,FALSE,TRUE,FALSE,TRUE,D3DBLEND_ONE, D3DBLEND_ONE,TRUE,oAREF.value);
else C.r_Pass (vsname,psname,FALSE,TRUE,FALSE,TRUE,D3DBLEND_ONE, D3DBLEND_ONE,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler_clf ("s_lmap", "internal\\internal_light_att", true);
C.r_Sampler_clf ("s_att", TEX_SPOT_ATT);
C.r_End ();
break;
case SE_R1_LMODELS:
vsname = "model_def_shadow";
psname = "model_shadow";
C.r_Pass (vsname,psname,FALSE,FALSE,FALSE,TRUE,D3DBLEND_ZERO,D3DBLEND_SRCCOLOR,FALSE,0);
C.r_End ();
break;
}
}
}
示例6:
void CBlender_combine::Compile(CBlender_Compile& C)
{
IBlender::Compile (C);
switch (C.iElement)
{
case 0: // combine
C.r_Pass ("combine_1", "combine_1", FALSE, FALSE, FALSE, TRUE, D3DBLEND_INVSRCALPHA, D3DBLEND_SRCALPHA); //. MRT-blend?
C.r_Sampler_rtf ("s_position", r2_RT_P );
C.r_Sampler_rtf ("s_normal", r2_RT_N );
C.r_Sampler_rtf ("s_diffuse", r2_RT_albedo );
C.r_Sampler_rtf ("s_accumulator", r2_RT_accum );
C.r_Sampler_rtf ("s_depth", r2_RT_depth );
C.r_Sampler_rtf ("s_tonemap", r2_RT_luminance_cur );
C.r_Sampler_clw ("s_material", r2_material );
C.r_Sampler_clw ("s_occ", r2_RT_ssao_temp );
C.r_Sampler_rtf ("s_half_depth", r2_RT_half_depth);
C.r_Sampler_clf ("env_s0", r2_T_envs0 );
C.r_Sampler_clf ("env_s1", r2_T_envs1 );
C.r_Sampler_clf ("sky_s0", r2_T_sky0 );
C.r_Sampler_clf ("sky_s1", r2_T_sky1 );
jitter(C);
C.r_End ();
break;
case 1: // aa-edge-detection + AA :)
C.r_Pass ("null", "combine_2_AA", FALSE, FALSE, FALSE);
C.r_Sampler_rtf ("s_position", r2_RT_P);
C.r_Sampler_rtf ("s_normal", r2_RT_N);
C.r_Sampler_clf ("s_image", r2_RT_generic0);
C.r_Sampler_clf ("s_bloom", r2_RT_bloom1);
C.r_Sampler_clf ("s_distort", r2_RT_generic1);
C.r_End ();
break;
case 2: // non-AA
C.r_Pass ("null", "combine_2_NAA", FALSE, FALSE, FALSE);
C.r_Sampler_rtf ("s_position", r2_RT_P);
C.r_Sampler_rtf ("s_normal", r2_RT_N);
C.r_Sampler_clf ("s_image", r2_RT_generic0);
C.r_Sampler_clf ("s_bloom", r2_RT_bloom1);
C.r_Sampler_clf ("s_distort", r2_RT_generic1);
C.r_End ();
break;
case 3: // aa-edge-detection + AA :) + DISTORTION
C.r_Pass ("null", "combine_2_AA_D", FALSE, FALSE, FALSE);
C.r_Sampler_rtf ("s_position", r2_RT_P);
C.r_Sampler_rtf ("s_normal", r2_RT_N);
C.r_Sampler_clf ("s_image", r2_RT_generic0);
C.r_Sampler_clf ("s_bloom", r2_RT_bloom1);
C.r_Sampler_clf ("s_distort", r2_RT_generic1);
C.r_End ();
break;
case 4: // non-AA + DISTORTION
C.r_Pass ("null", "combine_2_NAA_D", FALSE, FALSE, FALSE);
C.r_Sampler_rtf ("s_position", r2_RT_P);
C.r_Sampler_rtf ("s_normal", r2_RT_N);
C.r_Sampler_clf ("s_image", r2_RT_generic0);
C.r_Sampler_clf ("s_bloom", r2_RT_bloom1);
C.r_Sampler_clf ("s_distort", r2_RT_generic1);
C.r_End ();
break;
case 5: // post-processing
break;
}
}
示例7:
void CBlender_Model_EbB::Compile(CBlender_Compile& C)
{
IBlender::Compile (C);
if (C.bEditor) {
C.PassBegin ();
{
if (oBlend.value) { C.PassSET_ZB (TRUE,FALSE); C.PassSET_Blend_BLEND (); }
else { C.PassSET_ZB (TRUE,TRUE); C.PassSET_Blend_SET (); }
C.PassSET_LightFog (TRUE,TRUE);
// Stage1 - Env texture
C.StageBegin ();
C.StageSET_Address (D3DTADDRESS_CLAMP);
C.StageSET_Color (D3DTA_TEXTURE, D3DTOP_SELECTARG1, D3DTA_DIFFUSE);
C.StageSET_Alpha (D3DTA_TEXTURE, D3DTOP_SELECTARG1, D3DTA_DIFFUSE);
C.StageSET_TMC (oT2_Name, oT2_xform, "$null", 0);
C.StageEnd ();
// Stage2 - Base texture
C.StageBegin ();
C.StageSET_Color (D3DTA_TEXTURE, D3DTOP_BLENDTEXTUREALPHA, D3DTA_CURRENT);
C.StageSET_Alpha (D3DTA_TEXTURE, D3DTOP_SELECTARG1, D3DTA_CURRENT);
C.StageSET_TMC (oT_Name, oT_xform, "$null", 0);
C.StageEnd ();
// Stage3 - Lighting - should work on all 2tex hardware
C.StageBegin ();
C.StageSET_Color (D3DTA_DIFFUSE, D3DTOP_MODULATE, D3DTA_CURRENT);
C.StageSET_Alpha (D3DTA_DIFFUSE, D3DTOP_SELECTARG2, D3DTA_CURRENT);
C.Stage_Texture ("$null" );
C.Stage_Matrix ("$null", 0);
C.Stage_Constant ("$null" );
C.StageEnd ();
}
C.PassEnd ();
} else {
LPCSTR vsname = 0;
LPCSTR psname = 0;
switch (C.iElement)
{
case SE_R1_NORMAL_HQ:
vsname = psname = "model_env_hq";
if (oBlend.value) C.r_Pass (vsname,psname,TRUE,TRUE,FALSE,TRUE,D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE,0);
else C.r_Pass (vsname,psname,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler ("s_env", oT2_Name,false,D3DTADDRESS_CLAMP);
C.r_Sampler_clf ("s_lmap", "$user$projector",true);
C.r_End ();
break;
case SE_R1_NORMAL_LQ:
vsname = psname = "model_env_lq";
if (oBlend.value) C.r_Pass (vsname,psname,TRUE,TRUE,FALSE,TRUE,D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE,0);
else C.r_Pass (vsname,psname,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler ("s_env", oT2_Name,false,D3DTADDRESS_CLAMP);
C.r_End ();
break;
case SE_R1_LPOINT:
vsname = "model_def_point";
psname = "add_point";
C.r_Pass (vsname,psname,FALSE,TRUE,FALSE,TRUE,D3DBLEND_ONE, D3DBLEND_ONE,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler_clf ("s_lmap", TEX_POINT_ATT);
C.r_Sampler_clf ("s_att", TEX_POINT_ATT);
C.r_End ();
break;
case SE_R1_LSPOT:
vsname = "model_def_spot";
psname = "add_spot";
C.r_Pass (vsname,psname,FALSE,TRUE,FALSE,TRUE,D3DBLEND_ONE, D3DBLEND_ONE,TRUE);
C.r_Sampler ("s_base", C.L_textures[0]);
C.r_Sampler_clf ("s_lmap", "internal\\internal_light_att", true);
C.r_Sampler_clf ("s_att", TEX_SPOT_ATT);
C.r_End ();
break;
case SE_R1_LMODELS:
vsname = "model_def_shadow";
psname = "model_shadow";
C.r_Pass (vsname,psname,FALSE,FALSE,FALSE,TRUE,D3DBLEND_ZERO,D3DBLEND_SRCCOLOR,FALSE,0);
C.r_End ();
break;
}
}
}