To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cad.devOpen lugnet.cad.dev in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / Development / 3124
3123  |  3125
Subject: 
Re: Several replies to CLIPPING / WINDING
Newsgroups: 
lugnet.cad.dev
Date: 
Mon, 18 Oct 1999 13:41:26 GMT
Viewed: 
359 times
  
Rui Martins wrote:

  Well, the ideia is to minimize the state change, but if you have to make
some, that is not so drastic. On some hardware, some state/option
changes, force a flush in the hardware buffers, which breaks up the
pipeline & eventually hurts performance, but this is not the case.

  I understand that you would be allowed to have as many "0 CCW"/"0 CW"
lines as you want. This will hurt performance and of course, it would be
better if you could use only 1 call per part.

One nasty case is to mix 2D & 3D rendering, every time you change from 2D
to 3D rendering, in every hardware available, it forces a flush, and
performance will probably drop significantly.

  You don't need to do that with LDraw files, except for writing any
text on the screen. :)

  I think that what you are referring is "display lists", which in fact
  are controlled by your program, which you are responsible to optimize.
  So this is not very relevant, even because an optimized part will be
  loaded an kept in a display list for further reference, an also because
  an optimized .DAT file will have an unique meta command "0 CLIPPING ON"

  I wasn't talking about display lists, and I don't think that the
discussion is going to lead to a single "0 CLIPPING ON" meta command.
The OpenGL drivers are not forced to do any optimizations in the display
lists, if they want they can just copy the same commands when you call
the list.

R>   Another problem is that you have to send the elements in a slower way
R> to be able to change the culling parameters. If you don't believe me

   Never heard that one! ;)
   Could someone enlighten me ?

  I meant that you would have to use a glEnd(), call glFrontFace() and
then glBegin() again, which is much slower than having everything drawn
with a single call to glDrawElements().

  This depends on what changes you change.
  But the use of vertex arrays is the wait to go, because it reduces the
  amount of floating point math, because usually an object shares several
  vertexs between several polygons.

  Not exactly, you have to lock the arrays to have the vertexes
transformed only once and you can't change any states (not even the
colors) while you have the arrays locked. Or if you are using a display
list and if who wrote the driver was smart enough then the vertexes will
be transformed once (but you can't assume that).
  To use a vertex array you also need to have all vertexes indexed,
which is not the case of the DAT files and one of the reasons why I have
my own file format.

Leonardo



Message has 1 Reply:
  Re: Several replies to CLIPPING / WINDING
 
(...) In fact you can, use as many as you like, but that it's not the goal. if you read my previous mail, following this one I'am replying, you got the ideia that no WINDING meta command is the ideia, if the .DAT is well optimized. If someone want's (...) (25 years ago, 18-Oct-99, to lugnet.cad.dev)

Message is in Reply To:
  Several replies to CLIPPING / WINDING
 
R> If you keep changing states (turning backface culling on/off or R> changing front faces from CW to CCW) very often, you'll get a *slower* R> rendering in OpenGL (don't know about D3D). And remember that in a R> couple of months nVidia's GeForce (...) (25 years ago, 18-Oct-99, to lugnet.cad.dev)

15 Messages in This Thread:




Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR