POV-Ray : Newsgroups : povray.advanced-users : The Harcore Povrayer Test : The Harcore Povrayer Test Server Time
29 Jul 2024 14:11:22 EDT (-0400)
  The Harcore Povrayer Test  
From: Warp
Date: 31 Jan 2002 11:58:22
Message: <3c5977ae@news.povray.org>
Some years ago I made a "Hardcore Povrayer Test" just for fun. Here it is
again, with small updates.

  For each statement which you feel is true in your case (be sincere), take
one point. The number of points you get is your score. The maximum number
of points is 65.
  (My personal score is "only" 37, so it *is* a tough test.)


* You have participated in the IRTC and got to the top 20 best images.
* You have won a price in the IRTC.
* You have made bicubic patches by hand (and they worked as you expected).
* You have made a pov-script that creates a smooth surface with bicubic patches
  using some algorithm.
* You have made triangle meshes by hand.
* You have made a pov-script which generates triangle meshes using some
  algorithm.
* You have used the quadric, cubic, quartic or poly primitives.
* You have used poly objects bigger than 4th degree.
* You have calculated the polynomial for that poly object by yourself
  (instead of looking at the formula somwhere or just trying random values).
* You know the format of a PCM file.
* You have made one by hand.
* You have made a program which outputs a df3 file and used it in a scene.
* You know what a df3 file is and what's its format.
* You have made a patch for povray.
* Your patch is included in MegaPov or at least it's popular.
* Your patch was included in POV-Ray 3.5.
* You have made a popular tool for povray.
* You have used every object type, every camera type, every light source
  type, every media type, etc. and know how to use them.
* You could write a torus-shaped isosurface by memory, without needing
  to look anywhere for the function.
* Even if you don't remember the torus function, you could deduce it by
  yourself, without looking it anywhere.
* You know what is the "sturmian root solver" thing which is used with the
  'sturm' keyword in some objects (ie. you know the algorithm it uses).
* The intensity multiplier curves and light fading functions in the light
  source section of the povray manual are very clear and you understand
  them perfectly (and you might use them to choose your light source
  types).
* You understand how photon mapping works (at algorithm level).
* You have found the 'average normal bug' by yourself in a povray version
  previous than 3.1e.
* You know exactly what was causing it.
* You never include the povray include libraries (like colors.inc) because
  they slow parsing, but always define your colors, textures, etc by
  yourself.
* You only use the png format when working with povray.
* You always use it with alpha channel.
* It's very easy to you to make slope maps and actually you often use
  them to make your textures.
* You know what the 'use_index' keyword is used for without looking at
  the manual.
* You understand the matrix transformation and you can write them by hand.
* You know how to calculate the matrix from any number of consecutive
  transformations (translate, scale, rotate).
* For any given identifier name you can tell by heart if it's a reserved
  keyword (ie. an illegal identifier name) or not (of course without having
  syntax highlighting to help you).
* You could make any of the Chris Colefax's includes or macros by yourself
  if you wanted.
* You use frequency, phase, octaves, omega and lambda without problems
  when creating your own textures.
* You can tell what does each one of them do (without looking at the
  documentation).
* You understand the scattering function pictures in the media section of
  the documentation.
* You remember all the keywords that can be put in a global_settings block and
  you know what do they mean and how to use them.
* Making good-looking radiosity images is not a problem to you.
* You remember all the built-in float and vector identifiers.
* You use all the vector and string functions without problem.
* You know if some special feature is already implemented in the POV-Ray 3.5
  standard include files (and thus you know you don't have to implement it
  yourself).
* Functions, macros, arrays, loops and file-IO directives are a piece of cake.
* You never get the "camera is inside non-hollow object" warning. If you
  ever get it, it's absolutely intentional.
* You have made a modeller for povray.
* You often debug your povray code using the text message streams.
* You can easily calculate the camera parameters when you want to put a
  box right in front of the camera so that it completely and exactly fills
  the viewing area.
* You know which .c and .h files you must change to add a keyword to the
  parser.
* You can add a keyword and get it right the first time.
* You know which .c file contains the functionality for each aspect of
  the renderer.
* You can find a bug in the renderer source code given just a description
  of the symptoms and without using a debugger.
* You know BOTH reasons why a mesh can't be used in CSG.
* You know why refraction and media do work with meshes, even though CSG
  doesn't.
* You know that 'merge' doesn't have to be a primitive CSG operation
  and can recite the equivalent sequence of intersections, unions, and
  inverses.
* You know that 'difference' isn't a primitive CSG operation and you
  know how POV represents one internally.
* You understand how 'bounded_by' _really_ works.
* You know that a height_field has an inside and how it is defined.
* You've written your own include file and distributed it on the net. It has
  got some popularity.
* You understand all the options to 'media' without having to look in
  the manual.
* You know, without looking at the docs, how antialiasing methods 1 and 2 work
  and what's their difference.
* You have made yourself an obfuscated signature in POV-Ray SDL in 4 lines
  or less, and you use it by default when posting to the POV-Ray news server.
* You didn't know the answer to one of the above questions so you tried
  to find it in the manual.
* You didn't know the answer to one of the above questions so you tried
  to find it in the source code.
* You didn't know that 'merge' wasn't a primitive but now that you do
  you have worked it out for yourself.
* You are a member of the POV-Team.



-- 
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}//  - Warp -


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.