On Mar 14, 2015, at 11:51 PM, Neil Toronto <neil.toro...@gmail.com> wrote:

> What you need is to 1) create and combine the necessary Pict3Ds as much as 
> possible before the game starts; and 2) reuse them as much as possible during 
> the game.
> 
> You can even make the reused Pict3Ds fairly large if you freeze them. Any 
> modern 3D card won't have any problem with this, for example:
> 
>  (freeze (combine (get-tube+obstacles (make-world-stream) +x 1000)))
> 
> Freezing takes a while, though, and has this annoying property that it takes 
> the most time the first time the frozen Pict3D is rendered. (The actual 
> freezing has to be done with an active OpenGL context.) I'm not sure what to 
> do about the latter problem.

If I made it a finite game, with a finite tube, I could probably generate the 
whole tube once and move the camera along it, but with an infinite lazy tube, 
I’m not sure how I can reuse it.  

> If you don't mind, I have a couple of questions.
> 
> 1. What was the most annoying surprise?

The most annoying surprise.  Before you gave me your parametric-cylinder 
function, I tried approximating it with a bunch of normal cylinders.
I created them upright, in position, and then rotated them, but I hadn’t 
realized that when it rotated them it also rotated their positions around the 
origin, so they weren’t showing up.  Then I created them upright at the origin, 
then rotated them, and then used move to put them in place.  The current 
behavior does make sense, but a note in the docs might be helpful.  

> 2. What was the most pleasant one?

The most pleasant surprise was your parametric-cylinder function, and that it 
allowed me to supply the derivative, which was exactly what I needed to make 
the ends of the cylinders line up.



____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to