FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Public Member Functions | Public Attributes | List of all members
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< doubleinSizeScale
 

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);
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
       Routines to be used in a geometry shader to produce screen-oriented
       billboards.

       Functions are:
vec3 ViewDir, float ScaleFactor);
void EmitLocalOrientedBillboard(vec4 theVertex, vec3 ViewDir);
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().