本文整理汇总了C++中ParticleSystem::draw方法的典型用法代码示例。如果您正苦于以下问题:C++ ParticleSystem::draw方法的具体用法?C++ ParticleSystem::draw怎么用?C++ ParticleSystem::draw使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParticleSystem
的用法示例。
在下文中一共展示了ParticleSystem::draw方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: surf
void Fluid2DParticlesApp::draw()
{
// clear out the window with black
gl::clear( Color( 0, 0, 0 ) );
gl::color( ColorAf( 1.0f, 1.0f, 1.0f, 0.999f ) );
float* data = const_cast<float*>( (float*)mFluid2D.rgb().data() );
Surface32f surf( data, mFluid2D.resX(), mFluid2D.resY(), mFluid2D.resX()*sizeof(Colorf), SurfaceChannelOrder::RGB );
if ( ! mTex ) {
mTex = gl::Texture::create( surf );
} else {
mTex->update( surf );
}
gl::draw( mTex, getWindowBounds() );
mTex->unbind();
mParticles.draw();
mParams.draw();
}
示例2: renderScene
void renderScene(){
// Clear framebuffer & depth buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//where should the camera look at?
cameraTransform();
glDisable(GL_LIGHTING);//disable lighting not to affect the drawings of meta-objects
drawAxes();
drawGrid();
glEnable(GL_LIGHTING);//resume lighting
//WITH = All the light will NOT move with the camera (light fixed even if i rotate)
//Because i tell at every frame to fix the light at those 2 points
glLightfv(GL_LIGHT0, GL_POSITION, left_light_position);
glLightfv(GL_LIGHT1, GL_POSITION, right_light_position);
glColor3f(0.5,0.5,0.5);
field.getCollisionPlane().draw(Vector3f(0.93, 0.82, 0)); //WTF only certain colors work. JK it's because number must be float.. then why tf there are some 255 every now and then (e.g. axes)
glPushMatrix();
glTranslatef(field.getBlackHoleCentre().x,field.getBlackHoleCentre().y,field.getBlackHoleCentre().z);
glColor3f(0.7,0.5,0);
glutSolidSphere(0.1f,4,4);
glPopMatrix();
field.draw();
//TODO pause button
field.update();
glutSwapBuffers();
}
示例3: display
void display () {
if (wireframe) {
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
}
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
// Clear the screen
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
enter3D();
gluLookAt(camera.x, camera.y, camera.z,
cameraLookAt.x, cameraLookAt.y, cameraLookAt.z,
cameraUp.x, cameraUp.y, cameraUp.z);
glPushMatrix();
glScaled(1.0, -1.0, 1.0);
if (showSky) {
drawSky();
}
// Draw coordinate axis
// glCallList(axisList);
for (int i = 0; i < 9; i ++) {
gravitationalForce[i].draw();
}
if (showGround) {
drawGround();
}
if (showPipe) {
glPushMatrix();
drawSprinkler(emitterSpacing * emitterCount, sprinkerHeight, 100, 5.0, 40.0);
glPopMatrix();
}
if (showMountains) {
drawMoutains(3000, 0, 0);
drawMoutains(4000, 180, -200);
drawMoutains(5600, 45, -500);
}
if (showTrees) {
drawTrees();
}
if (renderMode == PARTICLERENDERMODE_TEXTURESPRITE) {
Texture::set("shine");
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
}
particleSystem.draw();
if (renderMode == PARTICLERENDERMODE_TEXTURESPRITE) {
Texture::done();
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
/*glPushMatrix();
glColor3f(1.0, 1.0, 1.0);
glTranslatef(0.0, -100.0, 0.0);
glScalef(100.0, -100.0, 100.0);
drawModel();
glPopMatrix();*/
if (wireframe) {
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
}
glDisable(GL_DEPTH_TEST);
enter2D();
glColor4d(0.0, 0.0, 0.0, 1.0);
sprintf(fpsText, "FPS:%4.2f", fps);
drawText(GLUT_BITMAP_HELVETICA_18, windowWidth - 100, 20, fpsText);
if (showHUD) {
drawText(GLUT_BITMAP_HELVETICA_18, 10, 20, "Water sprinkler");
sprintf(cameraText, "%4.2f %4.2f %4.2f", camera.x, camera.y, camera.z);
drawText(GLUT_BITMAP_HELVETICA_12, 10, 60, cameraText);
sprintf(particleText, "Particles: %llu", particleSystem.getParticleCount());
drawText(GLUT_BITMAP_HELVETICA_12, 10, 100, particleText);
if (menu) {
// Current option
glColor4d(0.2, 0.2, 0.2, 0.8);
glRectd(10, windowHeight - 40, 120, windowHeight - 10);
glColor4d(1.0, 1.0, 1.0, 1.0);
//.........这里部分代码省略.........
示例4: display
void display() {
glClear(GL_COLOR_BUFFER_BIT);
psys.draw();
glutSwapBuffers();
}
示例5: draw
void Demo::draw() {
gl::clear( Color(1, 1, 1) );
particleSystem->draw();
}
示例6: DrawScene
void Projekt::DrawScene()
{
//---------------------------------------------------------------------------
// Render scene to shadow map
//---------------------------------------------------------------------------
mShadowMap->BindDsvAndSetNullRenderTarget(mDirect3D->GetImmediateContext());
drawSceneToShadowMap();
mDirect3D->GetImmediateContext()->RSSetState(0);
// Restore back and depth buffer and viewport to the OM stage
ID3D11RenderTargetView* renderTargets[1] = {mDirect3D->GetRenderTargetView()};
mDirect3D->GetImmediateContext()->OMSetRenderTargets(1, renderTargets, mDirect3D->GetDepthStencilView());
mDirect3D->GetImmediateContext()->ClearRenderTargetView(mDirect3D->GetRenderTargetView(), reinterpret_cast<const float*>(&Colors::LightSteelBlue));
mDirect3D->GetImmediateContext()->ClearDepthStencilView(mDirect3D->GetDepthStencilView(), D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0);
mDirect3D->GetImmediateContext()->RSSetViewports(1, &mDirect3D->GetScreenViewport());
// Possible Wireframe render state
if (GetAsyncKeyState('E') & 0x8000)
mDirect3D->GetImmediateContext()->RSSetState(WireFrameRS);
XMMATRIX shadowTransform = XMLoadFloat4x4(&mShadowTransform);
//---------------------------------------------------------------------------
// Draw terrain
//---------------------------------------------------------------------------
//mTerrain.Draw(mDirect3D->GetImmediateContext(), mCam, mDirLights);
mTerrain.DrawShadowed(mDirect3D->GetImmediateContext(), *mPlayer.GetCamera(), mDirLights,
mShadowMap->getDepthMapSRV(), &shadowTransform);
// --------------------------------------------------------------------------
// Camera matrices
XMMATRIX view = mPlayer.GetCamera()->getViewMatrix();
XMMATRIX proj = mPlayer.GetCamera()->getProjMatrix();
XMMATRIX viewproj = mPlayer.GetCamera()->getViewProjMatrix();
float blendFactor[] = {0.0f, 0.0f, 0.0f, 0.0f};
// Set per frame constants
Effects::BasicFX->SetDirLights(mDirLights);
Effects::BasicFX->SetEyePosW(mPlayer.GetCamera()->getPosition());
Effects::BasicFX->setShadowMap(mShadowMap->getDepthMapSRV());
Effects::BasicFX->SetCubeMap(mSky->cubeMapSRV());
Effects::NormalMapFX->SetDirLights(mDirLights);
Effects::NormalMapFX->SetEyePosW(mPlayer.GetCamera()->getPosition());
Effects::NormalMapFX->setShadowMap(mShadowMap->getDepthMapSRV());
Effects::NormalMapFX->SetCubeMap(mSky->cubeMapSRV());
XMMATRIX world;
XMMATRIX worldInvTranspose;
XMMATRIX worldViewProj;
// Transform NDC space [-1,+1]^2 to texture space [0,1]^2
XMMATRIX toTexSpace(
0.5f, 0.0f, 0.0f, 0.0f,
0.0f, -0.5f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.5f, 0.5f, 0.0f, 1.0f);
// Vertex size & offset
UINT stride = sizeof(Vertex::Basic32);
UINT offset = 0;
// Draw player
//mPlayer.Draw(mDirect3D->GetImmediateContext(), mDirLights,
//mShadowMap->getDepthMapSRV(), &shadowTransform);
//---------------------------------------------------------------------------
// Draw opaque objects
//---------------------------------------------------------------------------
// Bind information about primitive type, and set input layout
mDirect3D->GetImmediateContext()->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
mDirect3D->GetImmediateContext()->IASetInputLayout(InputLayouts::Basic32);
// Set our effect technique to use
ID3DX11EffectTechnique* activeTech = Effects::BasicFX->DirLights3FogTexTech;
ID3DX11EffectTechnique* activeSkinnedTech = Effects::NormalMapFX->DirLights3TexTech;
D3DX11_TECHNIQUE_DESC techDesc;
//--------------------------------------------------------------------------------
// Draw opaque tessellated objects
//--------------------------------------------------------------------------------
Effects::BasicTessFX->SetDirLights(mDirLights);
Effects::BasicTessFX->SetEyePosW(mPlayer.GetCamera()->getPosition());
Effects::BasicTessFX->setShadowMap(mShadowMap->getDepthMapSRV());
Effects::BasicTessFX->SetCubeMap(mSky->cubeMapSRV());
mDirect3D->GetImmediateContext()->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST);
mDirect3D->GetImmediateContext()->IASetInputLayout(InputLayouts::PosNormalTexTan);
activeTech = Effects::BasicTessFX->TessDirLights3FogTexTech;
activeTech->GetDesc(&techDesc);
for (UINT p = 0; p < techDesc.Passes; ++p)
{
for (UINT mIndex = 0; mIndex < mGenericInstances.size(); ++mIndex)
//.........这里部分代码省略.........