本文整理汇总了C++中VertexFormat::addRHW方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexFormat::addRHW方法的具体用法?C++ VertexFormat::addRHW怎么用?C++ VertexFormat::addRHW使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VertexFormat
的用法示例。
在下文中一共展示了VertexFormat::addRHW方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WinMain
//.........这里部分代码省略.........
anim->setKeys( keys );
for ( int i = 0 ; i < keys ; ++i )
{
float f = (float)i / (keys-1);
float ang = f * Math::PI*2.f;
Quaternion quat( Vector3(0,1,0), ang );
float v[] = {quat.x, quat.y, quat.z, quat.w};
anim->setKeyValue( i, v, 4 );
anim->setKeyTime( i, f * 3.f );
}
anim->sortKeys();
mesh->setRotationController( anim );}
// mesh scale animation
/*{P(VectorInterpolator) anim = new VectorInterpolator(3);
anim->setKeys( keys );
for ( int i = 0 ; i < keys ; ++i )
{
float f = (float)i / (keys-1);
float v[3] = { Math::abs(Math::sin(f*Math::PI*2.f))+.5f, 1.f, 1.f };
anim->setKeyValue( i, v, 3 );
anim->setKeyTime( i, f * 5.f );
}
anim->sortKeys();
mesh->setScaleController( anim );}*/
// shadow volume
P(ShadowVolume) shadow = new ShadowVolume( model, lt->worldDirection(), 20.f );
shadow->setShader( new ShadowShader );
mesh->addPrimitive( shadow );
// shadow filler
VertexFormat fillvf;
fillvf.addRHW().addDiffuse();
P(Material) fillmat = new Material;
fillmat->setDepthEnabled( false );
fillmat->setDepthWrite( false );
fillmat->setBlend( Material::BLEND_SRCALPHA, Material::BLEND_INVSRCALPHA );
fillmat->setTextureColorCombine( 0, Material::TA_DIFFUSE, Material::TOP_SELECTARG1, Material::TextureArgument() );
fillmat->setTextureAlphaCombine( 0, Material::TA_DIFFUSE, Material::TOP_SELECTARG1, Material::TextureArgument() );
fillmat->setLighting( false );
fillmat->setVertexColor( true );
fillmat->setStencil( true );
fillmat->setStencilRef( 1 );
fillmat->setStencilFunc( Material::CMP_LESSEQUAL );
fillmat->setStencilPass( Material::STENCILOP_KEEP );
fillmat->setPass( ShadowShader::DEFAULT_SHADOW_FILL_PASS );
fillmat->setVertexFormat( fillvf );
// shadow filler geometry
P(Model) fillgeom = new Model( 4, 6, fillvf );
{VertexAndIndexLock<Model> lock( fillgeom, Model::LOCK_WRITE );
Vector4 fillpos[4] = { Vector4(0,0,0,0), Vector4(sw,0,0,0), Vector4(sw,sh,0,0), Vector4(0,sh,0,0) };
Color fillcolr[4] = { Color(0,0,0,80), Color(0,0,0,80), Color(0,0,0,80), Color(0,0,0,80) };
int fillind[6] = { 0,1,2, 0,2,3 };
fillgeom->setVertexPositionsRHW( 0, fillpos, 4 );
fillgeom->setVertexDiffuseColors( 0, fillcolr, 4 );
fillgeom->setIndices( 0, fillind, 6 );}
fillgeom->setShader( fillmat );
mesh->addPrimitive( fillgeom );
// mainloop
long prevTime = System::currentTimeMillis();
float time = 0.f;
while ( Window::flushWindowMessages() )