Re: controlling shading




I *think* that's what I'm doing; in my derived DataRenderer class I
override the various makeShadow* with my own. I have a bunch (for lack of
originality, I did the ones in the "barb" example). Then I'm not sure where
to put the makeAppearance thing; I tried putting it in one of them
(ShadowUnshadedRealTupleType), and then in all the others referring back to
that one, but it is apparently not geting called; putting a breakpoint in
my version of makeAppearance never gets hit, even though all my
ShadowUnshaded* guys are getting created.....  Who calls makeAppearance?

Donna L. Gresh, Ph.D.
IBM T.J. Watson Research Center
(914) 945-2472
http://www.research.ibm.com/people/g/donnagresh
gresh@xxxxxxxxxx




                                                                                
                                                     
                      Tom Rink                                                  
                                                     
                      <rink@xxxxxxxxx.e        To:       Donna L 
Gresh/Watson/IBM@IBMUS                                              
                      du>                      cc:       Bill Hibbard 
<hibbard@xxxxxxxxxxxxxxxxx>, visad-list@xxxxxxxxxxxxx          
                      Sent by:                 Subject:  Re: controlling 
shading                                                     
                      rink@xxxxxxxxxxxx                                         
                                                     
                      u                                                         
                                                     
                                                                                
                                                     
                                                                                
                                                     
                      01/24/2003 03:41                                          
                                                     
                      PM                                                        
                                                     
                                                                                
                                                     




Hi Donna

In short,  your custom DataRenderer needs to override the
makeShadow* methods defined in DataRenderer->RendererJ3D.
The new makeShadow* methods in the custom renderer return
the the new ShadowType extensions you've created.  Of course,
how, and which, ShadowTypes you extend depends on what
you're trying to do.  I'll let Bill elaborate on this further...

TomR

Donna L Gresh wrote:

> Well, I decided to make a stab at "turning off" the shading on my flat
> surfaces, following the description below, information in the
datarenderer
> tutorial, and the example of the BarbRenderer. I began by creating the
> "skeleton" for my new DataRenderer, which at the moment doesn't do
anything
> other than the defaults (and it still makes a picture which is a good
sign
> :-)
>
> However I don't quite understand what I need to do to override the
> makeAppearance method. I found the makeAppearance method in
ShadowTypeJ3D,
> which and it looks like I should just be able to do a
> "material.setLightingEnable(false)" all the time to turn shading off, but
> I'm not clear on where to put this method..... there are a bunch of these
> Shadow* classes, and I'm really not clear on which one does what; e.g.
I've
> got
> ShadowUnshadedRealTupleTypeJ3D, ShadowUnshadedRealTypeJ3D,
> ShadowUnshadedFunctionTypeJ3D.....
>
> You're right, this isn't a day at the beach, but since all I really want
to
> do is change one small aspect of the rendering, it seems I ought be be
able
> to just create the skeleton and change "one small thing". But I can't
> figure out quite what that is....
>
> Thanks in advance for any help.
>
> Donna L. Gresh, Ph.D.
> IBM T.J. Watson Research Center
> (914) 945-2472
> http://www.research.ibm.com/people/g/donnagresh
> gresh@xxxxxxxxxx
>
>
>                       Bill Hibbard
>                       <hibbard@facstaff        To:       Donna L
Gresh/Watson/IBM@IBMUS
>                       .wisc.edu>               cc:
visad-list@xxxxxxxxxxxxx
>                       Sent by:                 Subject:  Re: controlling
shading
>                       billh@xxxxxxxxx.e
>                       du
>
>
>                       12/19/2002 12:46
>                       PM
>
>
> Hi Donna,
>
> > I am using java3D to render a flat surface (for color interpolation
> > reasons) and would like to turn off shading, since it sometimes relects
> > light somewhat strangely. I saw references in the mailing list archive
to
> > gouraud and flat shading, but I could not figure out how one can set
> these.
> > Thanks in advance---
>
> Texture mapping uses flat shading, so you can get it
> with GraphicsModeControl.setTextureEnable(true). This
> does not work for IrregularSet domains, and will give
> you "blocky" pixels.
>
> You can explicitly control shading by creating a custom
> DataRenderer (see tutorial - no day at the beach) that
> uses ShadowTypes that override the makeAppearance()
> method of ShadowTypeJ3D. Shading is controlled in the
> Material used in the Appearence.
>
> Writing a custom DataRenderer will take you out of the
> realm of a casual user.
>
> Cheers,
> Bill




  • 2003 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: