- 积分
- 1468
- 注册时间
- 2013-9-17
- 最后登录
- 1970-1-1
- 在线时间
- 小时
- 金币
- 枚
- 资源币
- 枚
- 现金
- 元
- 性别
- 保密
离线
|
注册,下载更多游戏资源!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
孤岛危机3 的SSAO shader 是商业引擎里面自用的!已经优化过的!
shader仅提供学习使用!
这个SSAO shader 代码是 Vladimir Kajalin 原版代码
适合 自己开发引擎 学习使用!
下面只提供了前面部分 和后面部分
SSAO shader代码在 附件里面下载!
附件包含:
ambientocclusion.cfx
common.cfi
modificatorvt.cfi
shadelib.cfi
shadowcommon.cfi
可以直接使用 Notepad++ 打开查看!
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Shader Source File
// Copyright (C), Crytek Studios, 2001-2007
// -------------------------------------------------------------------------
// File name: AmbientOcclusion.cfx
// Version: v1.00
// Created: 04/12/2006 by Vladimir Kajalin
// Description: Implementation of SSAO, TerrainAO (2.5 D maps), Fill lights
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#define %TEMP_TERRAIN 0x40000000
#include "Common.cfi"
#include "ModificatorVT.cfi"
#include "ShadeLib.cfi"
// Shader global descriptions
float Script : STANDARDSGLOBAL
<
string Script =
"NoPreview;"
"LocalConstants;"
"ShaderDrawType = Custom;"
"ShaderType = PostProcess;"
>;
// original depth target
sampler2D sceneDepthSampler = sampler_state
{
Texture = $ZTarget;
MinFilter = POINT;
MagFilter = POINT;
MipFilter = POINT;
AddressU = Clamp;
AddressV = Clamp;
};
float4 g_ScreenSize : PB_ScreenSize;
float3x4 SSAO_ReprojectionMatrix;
float3x4 SSAO_CameraMatrix;
float4 SSAO_params;
float4 SSAO_VOParams;
float4 SSAO_RadiusMultipler;
.
.
.
technique VoxTerrainDebug_Pass
{
//Shadow pass
pass p0
{
VertexShader = Deferred_TerrainAO_Pass_VS();
ZEnable = false;
ZWriteEnable = false;
CullMode = None;
PixelShader = VoxTerrainDebug_Pass_PS();
}
}
technique Deferred_TerrainAO_Pass
{
//Shadow pass
pass p0
{
VertexShader = Deferred_TerrainAO_Pass_VS();
ZEnable = false;
ZWriteEnable = false;
CullMode = None;
PixelShader = Deferred_TerrainAO_Pass_PS();
}
}
technique Deferred_SSGI_Pass
{
pass p0
{
VertexShader = Deferred_SSGI_Pass_VS();
PixelShader = Deferred_SSGI_Pass_PS();
}
}
|
|