Re: Only 4 multisamples on IR?

New Message Reply Date view Thread view Subject view Author view

Rob Jenkins (robj++at++quid)
Wed, 9 Oct 1996 13:17:00 -0700


On Oct 9, 6:54pm, Orad Hi-Tec Systems wrote:
..snip..
> True, but it gets even worse: iR won't do RGBA even with 10 bits per
component > and 8 multisamples, irrespective of pixel size!
> But why is that?
> By bit consumption calculation you can see that extra-large pixel depth could
> hold 8 samples, RGBA-12 (and Z).
> Even smaller depths could hold 8 samples, RGBA-10 (and Z).
> There must be something other than pixel depth holding back those visuals...
>

Correct - the visuals have been disabled. There's a HW problem that mean't they
don't work so it's not a framebuffer resource limitation.

>
> > You can get RGB (no alpha) 10 bits per component with 8
> > multisamples or RGBA12 with 4 multisamples. Note, for screen-door or
blended
> > transparency ( pfTransparency with PFTR_MS_ALPHA or PFTR_BLEND_ALPHA ) -
you
> > don't need source alpha so you could use RGB10 and get 8 samples. This
doesn't
> > help you if you need the source alpha for other purposes though...
>
> I guess you mean "framebuffer alpha", not "source alpha".

Yes, bad choice of words on my part. The man page for blendfunction() has a
good description of this for anyone interested.

I'll try and wrap this up, this is a bit generalised so I realise it won't be
true for all customers and applications.

If you're doing gfx only then this shouldn't cause a problem. You'll most
likely really want 8 multisamples. This means you can't have alpha *but* as you
don't need alpha for transparency this should be OK. You should also be OK with
10 bits per component - no matter what the resolution of the framebuffer ( and
your textures ) in the gfx pipe, the final output from the DG has been dithered
to <= 10 bits so as long as you're using that output ( to
monitor/projector/glasses ) you should see any difference for 10 bits/component
pixels.

The people who really want alpha are typically those wanting to blend gfx over
video, where the gfx has transparency in ( eg virtual sets ). They want high
quality multisampling too - Mmmmm. You can only get alpha with 12 bit visuals
on iR, so if you can jiggle your vof such that you have 12 bits/comp RGBA with
4 multisamples ( 1280x1024 with 1RM I think ) there's an OpenGL extension to
support accumulating two multisampled images hence increasing image quality. On
iR you should be able to 2 pass render your scene in real-time. Especially if
you hava a small ( video sized ) scene or more than one RM - Note 2RM boards
you can acheive RGBA12, 4 multisamples up to 1920x1080. Playing with
ircomine/glxinfo and all that is the clearest way to see this. I'll paste some
words on Accumulating Multisampled Images below:

Cheers
Rob

----------------------------------------------------------------

Accumulating Multisampled Images

You can enhance the quality of the image even more by making several passes,
adding the result in the accumulation buffer. The accumulation buffer averages
several renderings of the same primitive. For multipass rendering, different
sample locations need to be used in each pass to achieve high quality.

When an application uses multisampling in conjunction with accumulation, it has
to call glSamplePatternSGIS() with one of the following patterns as an
argument:

     GL_1PASS_SGIS is designed to produce a well-antialiased result in a single
      rendering pass (this is the default).

     GL_2PASS_0_SGIS and GL_2PASS_1_SGIS together specify twice the number of
        sample points per pixel. You should first completely render a scene
using pattern GL_2PASS_0_SGIS, then completely render it again
                        usingGL_2PASS_1_SGIS. When the two images are averaged
using the accumulation buffer, the result is as if a single
pass had been rendered with 2GL_SAMPLES_SGIS sample points.

     GL_4PASS_0_SGIS, GL_4PASS_1_SGIS, GL_4PASS_2_SGIS, and GL_4PASS_3_SGIS
     together define a pattern of 4GL_SAMPLES_SGIS sample points. They can be
        used to accumulate an image from four complete rendering passes.

Accumulating multisample results can also extend the capabilities of your
system. For example, if you have only enough resources to allow four
subsamples, but you are willing to render the image twice, you can achieve the
same effect as multisampling with eight subsamples. Note that you do need an
accumulation buffer, which also takes space.

To query the sample pattern, call glGetIntegerv() with pname set to
GL_SAMPLE_PATTERN_SGIS. The pattern should be changed only between complete
rendering passes.

For more information, see "The Accumulation Buffer," in Chapter 10, "The
Framebuffer," of the
OpenGL Programming Guide.
-----------------------------------------------------

-- 
________________________________________________________________
Rob Jenkins
Silicon Graphics
robj++at++csd.sgi.com
=======================================================================
List Archives, FAQ, FTP:  http://www.sgi.com/Technology/Performer/
            Submissions:  info-performer++at++sgi.com
        Admin. requests:  info-performer-request++at++sgi.com

New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:53:45 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.