本文整理汇总了C#中Renderer.SetCSUAV方法的典型用法代码示例。如果您正苦于以下问题:C# Renderer.SetCSUAV方法的具体用法?C# Renderer.SetCSUAV怎么用?C# Renderer.SetCSUAV使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Renderer
的用法示例。
在下文中一共展示了Renderer.SetCSUAV方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ApplyBilateralFiltering
private void ApplyBilateralFiltering( Renderer.Texture2D _Source, Renderer.Texture2D _Target, float _BilateralRadius, float _BilateralTolerance, bool _Wrap, int _ProgressBarMax )
{
_Source.SetCS( 0 );
_Target.SetCSUAV( 0 );
// m_CB_Filter.m.Radius = _BilateralRadius;
// m_CB_Filter.m.Tolerance = _BilateralTolerance;
m_CB_Filter.m.Sigma_Radius = (float) (-0.5 * Math.Pow( _BilateralRadius / 3.0f, -2.0 ));
m_CB_Filter.m.Sigma_Tolerance = _BilateralTolerance > 0.0f ? (float) (-0.5 * Math.Pow( _BilateralTolerance, -2.0 )) : -1e6f;
m_CB_Filter.m.Tile = (uint) (_Wrap ? 1 : 0);
m_CS_BilateralFilter.Use();
uint h = Math.Max( 1, MAX_LINES*1024 / W );
uint CallsCount = (uint) Math.Ceiling( (float) H / h );
for ( uint i=0; i < CallsCount; i++ ) {
m_CB_Filter.m.Y0 = (UInt32) (i * h);
m_CB_Filter.UpdateData();
m_CS_BilateralFilter.Dispatch( W, h, 1 );
m_device.Present( true );
progressBar.Value = (int) (0.01f * (0 + _ProgressBarMax * (i+1) / CallsCount) * progressBar.Maximum);
// for ( int a=0; a < 10; a++ )
Application.DoEvents();
}
// Single gulp (crashes the driver on large images!)
// m_CS_BilateralFilter.Dispatch( W, H, 1 );
_Target.RemoveFromLastAssignedSlotUAV(); // So we can use it as input for next stage
}