Had this one hanging around from like a month ago...
Added the ability to set the geometry comparators for the buckets for those cases where the app may know better. git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7137 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
37cc6e581d
commit
228a207aaf
@ -71,6 +71,48 @@ public class RenderQueue {
|
||||
Inherit
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a different geometry comparator for the specified bucket, one
|
||||
* of Gui, Opaque, Sky, or Transparent. The GeometryComparators are
|
||||
* used to sort the accumulated list of geometries before actual rendering
|
||||
* occurs.
|
||||
*
|
||||
* <p>The most significant comparator is the one for the transparent
|
||||
* bucket since there is no correct way to sort the transparent bucket
|
||||
* that will handle all geometry all the time. In certain cases, the
|
||||
* application may know the best way to sort and now has the option of
|
||||
* configuring a specific implementation.</p>
|
||||
*
|
||||
* <p>The default comparators are:</p>
|
||||
* <ul>
|
||||
* <li>Bucket.Opaque: {@link com.jme3.renderer.queue.OpaqueComparator} which sorts
|
||||
* by material first and front to back within the same material.
|
||||
* <li>Bucket.Transparent: {@link com.jme3.renderer.queue.TransparentComparator} which
|
||||
* sorts purely back to front by leading bounding edge with no material sort.
|
||||
* <li>Bucket.Sky: {@link com.jme3.renderer.queue.NullComparator} which does no sorting
|
||||
* at all.
|
||||
* <li>Bucket.Gui: {@link com.jme3.renderer.queue.GuiComparator} sorts geometries back to
|
||||
* front based on their Z values.
|
||||
*/
|
||||
public void setGeometryComparator(Bucket bucket, GeometryComparator c) {
|
||||
switch (bucket) {
|
||||
case Gui:
|
||||
guiList = new GeometryList(c);
|
||||
break;
|
||||
case Opaque:
|
||||
opaqueList = new GeometryList(c);
|
||||
break;
|
||||
case Sky:
|
||||
skyList = new GeometryList(c);
|
||||
break;
|
||||
case Transparent:
|
||||
transparentList = new GeometryList(c);
|
||||
break;
|
||||
default:
|
||||
throw new UnsupportedOperationException("Unknown bucket type: "+bucket);
|
||||
}
|
||||
}
|
||||
|
||||
public void addToShadowQueue(Geometry g, ShadowMode shadBucket){
|
||||
switch (shadBucket){
|
||||
case Inherit: break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user