Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
Wizt::BillboardBase Class Reference

Convenience class for drawing billboards using a Geometry Shader. More...

#include <Billboard.hpp>

Inheritance diagram for Wizt::BillboardBase:
Wizt::Billboard Wizt::HeightDots Wizt::HeightDotsMultiView Wizt::WhiteDots

Public Member Functions

void initialize (Programmable &P) const
 BillboardBase (VObject *that)
bool initializeAnemone (Anemone &RenderAnemone, VRenderContext &Context, AnemoneCreator<> &AC) const
RenderBasin::Program::Parameters setProgramParameters (RenderBasin::Program::Parameters P, Anemone &RenderAnemone, const GridAnemone::AnemoneCreationContext &ARC, const RefPtr< GridAnemone::AnemoneExplorer > &AE) const
string EmitBillboard_geom () const
 Define a function to transform world coordinates to screen coordinates.

Public Attributes

VObject::in< double > inSizeScale

Detailed Description

Convenience class for drawing billboards using a Geometry Shader.

Member Function Documentation

◆ EmitBillboard_geom()

string Wizt::BillboardBase::EmitBillboard_geom ( ) const

Define a function to transform world coordinates to screen coordinates.

uniform vec3 TranslationVector;
vec4 WorldToScreen(vec4 theVertex);

Routines to be used in a geometry shader to produce screen-oriented billboards.

Functions are:

void EmitScaledOrientedBillboard(vec4 theVertex, vec3 theCenterShift,
vec3 ViewDir, float ScaleFactor);
void EmitLocalOrientedBillboard(vec4 theVertex, vec3 ViewDir);
void EmitLocalBillboardRelative(vec4 theVertex);
void EmitOrientedBillboard(vec4 theVertex, vec3 ViewDir);
void EmitBillboard(vec4 theVertex);
void EmitScaledBillboard(vec4 theVertex, float ScaleFactor);

These routines will output a fragment shader variable WorldFragmentCoordinates containing the world coordinates of each pixel, relative to the uniform variable CenterShift (aka Origin) if the Local* functions are used.

References Wizt::embed_glsl(), and EmitBillboard_geom().

Referenced by EmitBillboard_geom().