本文整理汇总了C++中Pixel::Blend方法的典型用法代码示例。如果您正苦于以下问题:C++ Pixel::Blend方法的具体用法?C++ Pixel::Blend怎么用?C++ Pixel::Blend使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pixel
的用法示例。
在下文中一共展示了Pixel::Blend方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: float
void FillScratch( const DrawUtils::DrawInfos& i, Pixel& P, float _Distance, float _U )
{
Noise& N = *((Noise*) i.pData);
float Value = 1.0f * N.Perlin( 0.001f * NjFloat2( float(i.x) / i.w, float(i.y) / i.h ) );
Value += abs( 4.0f * N.Perlin( 0.005f * (Value + _U) ) );
NjFloat4 Color( Value, Value, Value, i.Coverage * (1.0f - abs(i.Distance)) );
P.Blend( Pixel( Color ), Color.w );
}
示例2: abs
void FillRectangle( const DrawUtils::DrawInfos& i, Pixel& P )
{
float Alpha = i.Coverage;
float Distance = 1.0f - 2.0f * abs(i.Distance);
Pixel P2( NjFloat4( Distance, 0, 0, 0 ) ); // Draw distance to border in red
if ( Distance < 0.0f )
Alpha = 0.0f;
P.Blend( P2, Alpha );
}
示例3: SATURATE
void FillSplotch( const DrawUtils::DrawInfos& i, Pixel& P )
{
Noise& N = *((Noise*) i.pData);
NjFloat2 UV = i.UV;
UV.x -= 0.5f;
UV.y -= 0.5f;
float Scale = 1.0f + 1.0f * N.Perlin( NjFloat2( 0.005f * i.x / i.w, 0.005f * i.y / i.h ) );
UV.x *= Scale;
UV.y *= Scale;
float Distance2Center = UV.Length();
float C = 1.2f * (1.0f - 2.0f * Distance2Center);
C = SATURATE( C );
float A = C * C * i.Coverage;
NjFloat4 Color( C, C, C, A );
P.Blend( Pixel( Color ), Color.w );
}
示例4: MAX
void FillLine( const DrawUtils::DrawInfos& i, Pixel& P )
{
float D = MAX( 0.0f, 1.0f - i.Distance );
P.Blend( Pixel( NjFloat4( 0, D, 0, 0 ) ), D * i.Coverage );
}
示例5:
void FillEllipse( const DrawUtils::DrawInfos& i, Pixel& P )
{
Pixel C( i.Distance < 1.0f ? NjFloat4( 0, 0, i.Distance, i.Distance * i.Coverage ) : NjFloat4( 0, 1, 1, 0.5 ) );
P.Blend( C, C.RGBA.w );
}