Logo RiCPP Logo

RiCPP - ToDo List

[Project Page] [RiCPP Homepage] [Compiled Snapshot] [RIB SampleToDo [History]
[Status] Platzhalter

Module glrenderer (OpenGL output)

  • Restore the graphics state correctly after block ends and in different contexts
  • Objects for tesselated geometry interface calls, meshes
  • Caching the tesselated objects (e.g. to reuse a tesselated sphere)
  • Better use of OpenGL for standard shaders (volume, surface, lightsource, texture mapping)
  • Add subdivision surfaces
  • Add points primitives
  • Add lines primitives
  • Add blobs
  • Using OpenGL display lists for RenderMan objects
  • Options and attributes for selecting and picking
  • Level of detail
  • Solid blocks
  • ...Try to eliminate the No's at the implementation status...

Module ribout (generate RIB output)

  • Control option for binary output
  • Allow 'gzipped' output
  • A possibility to use standard IO


  • Revisit orientation, matrix operations and implement RiTransformPoints()
  • Integrate search pathes for renderer DLLs, RIB archives, textures etc.
  • Procedurals
  • Write comments for doxygen for documentation
  • Library documentation as text document for reference and intruduction
  • Debugging, make it faster

Previewer (test program for the library)

  • Camera navigation with mouse.

Implementation status of RiCPP

Request glrenderer ribout
RtVoid declare(const char * name, const char * declaration) yes yes
Request glrenderer ribout
RtVoid begin(RtToken name) Yes Yes
RtVoid end(RtVoid) Yes Yes
RtContextHandle getContext(RtVoid) Yes Yes
RtVoid context(RtContextHandle handle) Yes Yes
RtVoid frameBegin(RtInt frame) Yes Yes
RtVoid frameEnd(RtVoid) Yes Yes
RtVoid worldBegin(RtVoid) Yes Yes
RtVoid worldEnd(RtVoid) Yes Yes
RtObjectHandle objectBegin(RtVoid) Yes Yes
RtVoid objectEnd(RtVoid) Yes Yes
RtVoid objectInstance(RtObjectHandle handle) Yes Yes
RtVoid solidBegin(RtToken ) No Yes
RtVoid solidEnd(RtVoid) No Yes
RtVoid motionBegin(RtInt n, RtFloat timestep, ...) No Yes
RtVoid motionEnd(RtVoid) No Yes
RtVoid attributeBegin(RtVoid) Yes Yes
RtVoid attributeEnd(RtVoid) Yes Yes
RtVoid transformBegin(RtVoid) Yes Yes
RtVoid transformEnd(RtVoid) Yes Yes
RtVoid synchronize(RtToken name) Yes Yes
Request glrenderer ribout
RtVoid format(RtInt xresolution, RtInt yresolution, RtFloat pixelaspectratio) Yes Yes
RtVoid frameAspectRatio(RtFloat frameaspectratio) Yes Yes
RtVoid screenWindow(RtFloat left, RtFloat right, RtFloat bottom, RtFloat top) Yes Yes
RtVoid cropWindow(RtFloat xmin, RtFloat xmax, RtFloat ymin, RtFloat ymax) Yes Yes
RtVoid projection(RtToken name, ...) Yes Yes
RtVoid clipping(RtFloat near, RtToken far) Yes Yes
RtVoid clippingPlane(RtFloat x, RtToken y, RtToken z, RtToken nx, RtToken ny, RtToken nz) No Yes
RtVoid depthOfField(RtFloat fstop, RtToken focallength, RtToken focaldistance) No Yes
RtVoid shutter(RtFloat min, RtToken max) No Yes
RtVoid pixelVariance(RtFloat variation) No Yes
RtVoid pixelSamples(RtFloat xsamples, RtFloat ysamples) No Yes
RtVoid pixelFilter(RtFilterFunc filterfunc, RtFloat xwidth, RtFloat ywidth) No Yes
RtVoid boxFilter(RtFloat, RtFloat, RtFloat, RtFloat) Yes Yes
RtVoid triangleFilter(RtFloat, RtFloat, RtFloat, RtFloat) Yes Yes
RtVoid catmullRomFilter(RtFloat, RtFloat, RtFloat, RtFloat) Yes Yes
RtVoid gaussianFilter(RtFloat, RtFloat, RtFloat, RtFloat) Yes Yes
RtVoid sincFilter(RtFloat, RtFloat, RtFloat, RtFloat) Yes Yes
RtVoid exposure(RtFloat gain, RtFloat gamma) Yes Yes
RtVoid imager(RtToken name, ...) No Yes
RtVoid quantize(RtToken type, RtFloat one, RtFloat min, RtFloat max, RtFloat ditheramplitude) No Yes
RtVoid display(RtToken name, RtToken type, RtToken mode, ...) Yes Yes
RtVoid hider(RtToken type, ...) No Yes
RtVoid colorSamples(RtInt n, RtFloat nRGB[], RtFloat RGBn[]) Yes Yes
RtVoid relativeDetail(RtFloat relativedetail) No Yes
RtVoid option(RtToken name, ...) Yes Yes
Request glrenderer ribout
RtVoid color(RtColor color) Yes Yes
RtVoid opacity(RtColor color) Yes Yes
RtVoid textureCoordinates(RtFloat s1, RtFloat t1, RtFloat s2, RtFloat t2, RtFloat s3, RtFloat t3, RtFloat s4, RtFloat t4) No Yes
RtLightHandle lightSource(RtToken shadername, ...) Yes Yes
RtLightHandle areaLightSource(RtToken shadername, ...) No Yes
RtVoid illuminate(RtLightHandle light, RtBoolean onoff) No Yes
RtVoid surface(RtToken shadername, ...) No Yes
RtVoid displacement(RtToken shadername, ...) No Yes
RtVoid atmosphere(RtToken shadername, ...) No Yes
RtVoid exterior(RtToken shadername, ...) No Yes
RtVoid shadingRate(RtFloat size) No Yes
RtVoid shadingInterpolation(RtToken type) Yes Yes
RtVoid matte(RtBoolean onoff) No Yes
RtVoid bound(RtBound bound) No Yes
RtVoid detail(RtBound bound) No Yes
RtVoid detailRange(RtFloat minvisible, RtFloat lowertransition, RtFloat uppertransition, RtFloat maxvisible) No Yes
RtVoid geometricRepresentation(RtToken type, RtFloat value) Yes Yes
RtVoid orientation(RtToken orientation) Yes Yes
RtVoid orientation(RtToken reverseOrientation) Yes Yes
RtVoid sides(RtInt sides) Yes Yes
RtVoid identity(RtVoid) Yes Yes
RtVoid transform(RtMatrix transform) Yes Yes
RtVoid concatTransform(RtMatrix transform) Yes Yes
RtVoid perspective(RtFloat fov) Yes Yes
RtVoid translate(RtFloat dx, RtFloat dy, RtFloat dz) Yes Yes
RtVoid rotate(RtFloat angle, RtFloat dx, RtFloat dy, RtFloat dz) Yes Yes
RtVoid scale(RtFloat sx, RtFloat sy, RtFloat sz) Yes Yes
RtVoid skew(RtFloat angle, RtFloat dx1, RtFloat dy1, RtFloat dz1, RtFloat dx2, RtFloat dy2, RtFloat dz2) Yes Yes
RtVoid coordinateSystem(RtToken name) Yes Yes
RtVoid coordSysTransform(RtToken name) Yes Yes
RtPoint *transformPoints(RtToken fromspace, RtToken tospace, RtInt n, RtPoint points[]) No No
RtVoid attribute(RtToken name, ...) Yes Yes
Request glrenderer ribout
RtVoid polygon(RtInt nvertices, ...) Yes Yes
RtVoid generalPolygon(RtInt nloops, RtInt nvertices[], ...) Yes Yes
RtVoid pointsPolygons(RtInt npolys, RtInt nvertices[], RtInt vertices[], ...) Yes Yes
RtVoid pointsGeneralPolygons(RtInt npolys, RtInt nloops[], RtInt nvertices[], RtInt vertices[], ...) Yes Yes
RtVoid basis(RtBasis ubasis, RtInt ustep, RtBasis vbasis, RtInt vstep) Yes Yes
RtVoid patch(RtToken type, ...) Yes Yes
RtVoid patchMesh(RtToken type, RtInt nu, RtToken uwrap, RtInt nv, RtToken vwrap, ...) Yes Yes
RtVoid nuPatch(RtInt nu, RtInt uorder, RtFloat uknot[], RtFloat umin, RtFloat umax, RtInt nv, RtInt vorder, RtFloat vknot[], RtFloat vmin, RtFloat vmax, ...) Yes Yes
RtVoid trimCurve(RtInt nloops, RtInt ncurves[], RtInt order[], RtFloat knot[], RtFloat min, RtFloat max, RtInt n[], RtFloat u[], RtFloat v[], RtFloat w[], ...) Yes Yes
RtVoid subdivisionMesh(RtToken scheme, RtInt nfaces, RtInt nvertices[], RtInt vertices[], RtInt ntags, RtToken tags[], RtInt nargs[], RtInt intargs[], RtFloat floatargs[], ...) No Yes
RtVoid sphere(RtFloat radius, RtFloat zmin, RtFloat zmax, RtFloat thetamax, ...) Yes Yes
RtVoid cone(RtFloat height, RtFloat radius, RtFloat thetamax, ...) Yes Yes
RtVoid cylinder(RtFloat radius, RtFloat zmin, RtFloat zmax, RtFloat thetamax, ...) Yes Yes
RtVoid hyperboloid(RtPoint point1, RtPoint point2, RtFloat thetamax, ...) Yes Yes
RtVoid paraboloid(RtFloat rmax, RtFloat zmin, RtFloat zmax, RtFloat thetamax, ...) Yes Yes
RtVoid disk(RtFloat height, RtFloat radius, RtFloat thetamax, ...) Yes Yes
RtVoid torus(RtFloat majorradius, RtFloat minorradius, RtFloat phimin, RtFloat phimax, RtFloat thetamax, ...) Yes Yes
RtVoid points(RtInt npoints, ...) No Yes
RtVoid curves(RtToken type, RtInt ncurves, RtInt nvertices[], RtToken wrap, ...) No Yes
RtVoid blobby(RtInt nleaf, RtInt ncode, RtInt code[], RtInt nfloat, RtInt floats[], RtInt nstrings, RtInt strings[], ...) No Yes
RtVoid procedural(RtPointer data, RtBound bound, RtProcSubdivFunc subdividefunc, RtProcFreeFunc freeFunc, ...) No Yes
RtVoid procDelayedReadArchive(RtPointer data, RtFloat detail) No Yes
RtVoid procRunProgram(RtPointer data, RtFloat detail) No Yes
RtVoid procDynamicLoad(RtPointer data, RtFloat detail) No Yes
RtVoid procFree(RtPointer data) No Yes
RtVoid geometry(RtToken type, ...) Yes Yes
External Resources
Request glrenderer ribout
RtVoid makeTexture(RtString picturename, RtString texturename, RtToken swrap, RtToken twrap, RtFilterFunc filterfunc, RtFloat swidth, RtFloat twidth, ...) No Yes
RtVoid makeLatLongEnvironment(RtString picturename, RtString texturename, RtFilterFunc filterfunc, RtFloat swidth, RtFloat twidth, ...) No Yes
RtVoid makeCubeFaceEnvironment(RtString px, RtString nx, RtString py, RtString ny, RtString pz, RtString nz, RtString texturename, RtFloat fov, RtFilterFunc filterfunc, RtFloat swidth, RtFloat twidth, ...) No Yes
RtVoid makeShadow(RtString picturename, RtString texturename, ...) No Yes
Error Handling
Request glrenderer ribout
RtVoid errorHandler(RtErrorHandler handler) Yes Yes
RtVoid errorIgnore(RtInt code, RtInt severity, RtString message) Yes Yes
RtVoid errorPrint(RtInt code, RtInt severity, RtString message) Yes Yes
RtVoid errorAbort(RtInt code, RtInt severity, RtString message) Yes Yes
Archives Files
Request glrenderer ribout
RtVoid archiveRecord(RtToken type, RtString format, ...) Yes Yes
RtVoid readArchive(RtString name, RtArchiveCallback callback, ...) Yes Yes

[Project Page] [RiCPP Homepage] [Compiled Snapshot] [RIB SampleToDo [History]

Last change: Sept., 30th 2008
Contact: Andreas Pidde