aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Rushforth <[email protected]>2005-04-01 00:02:28 +0000
committerKevin Rushforth <[email protected]>2005-04-01 00:02:28 +0000
commit46cb80a0363025c330baea513b0224fbbdf35de3 (patch)
tree2d9ed0768bb271a873266253704733e4e4ded3fb
parent6a4504426cc054b5e033ba4c2ed31d3ea8c959f4 (diff)
Updates to proposed Java 3D API changes
git-svn-id: https://svn.java.net/svn/j3d-core~svn/trunk@183 ba19aa83-45c5-6ac9-afd3-db810772062c
-rw-r--r--www/index.html16
-rw-r--r--www/j3d1_4/multipass.html35
-rw-r--r--www/j3d1_4/proposed-changes.html257
-rw-r--r--www/j3d1_4/render-texture.html57
-rw-r--r--www/j3d1_4/stencil.html46
-rw-r--r--www/j3d1_4/vsg-op.html80
6 files changed, 355 insertions, 136 deletions
diff --git a/www/index.html b/www/index.html
index 3440207..f8309c6 100644
--- a/www/index.html
+++ b/www/index.html
@@ -175,13 +175,12 @@ the rights to ship the source code for the native Headspace sound
mixer. Our plan
going forward is to enourage the development community to implement an
AudioEngine using <a href="https://joal.dev.java.net/">JOAL</a>.</p>
-<p><span style="font-weight: bold;">Java&nbsp;3D 1.4</span><br>
+<p><span style="font-weight: bold;">Java&nbsp;3D 1.4, 1.5, ...</span><br>
</p>
<p>A description of the set of <a href="j3d1_4/proposed-changes.html">proposed
-Java&nbsp;3D
-1.4 API changes</a> is now available. The main focus of the proposed
-1.4
-API is&nbsp; the addition of <a href="j3d1_4/shaders.html">programmable
+Java&nbsp;3D API changes</a> for 1.4 (and beyond) is now available. The
+main focus of the proposed
+1.4 release is&nbsp; the addition of <a href="j3d1_4/shaders.html">programmable
shaders</a>. Our goal is to
minimize large scale changes to the system in order to deliver 1.4 as
quickly as possible. We encourage members of the development community
@@ -202,7 +201,7 @@ in the java.net community.<br>
improvements to Java&nbsp;3D version 1.4</a> is also available, and is
an unprioritized list of improvements that do not require API changes.<br>
</p>
-<p><span style="font-weight: bold;">Java&nbsp;3D 1.5/2.0</span><br>
+<p><span style="font-weight: bold;">Java&nbsp;3D 2.0</span><br>
</p>
<p>The scope of this release will be driven by the level of interest
and community support that we get.
@@ -211,7 +210,7 @@ thoughts are that this work will include large scale changes to support
features such as extensibility and pluggable renderers. Click the
following link for a <a
href="j3d1_4/proposed-changes.html#Future_Features">list of
-possible 1.5/2.0 features</a>.<br>
+possible 2.0 features</a>.<br>
</p>
<h3><a name="Project_Suggestions"></a>Project Suggestions</h3>
<p>The main areas in j3d-core for which we need help from the community
@@ -219,7 +218,8 @@ are:
</p>
<ul>
<li>Bug fixes (see the <a
- href="https://java3d.dev.java.net/servlets/ProjectIssues">list of open
+ href="https://java3d.dev.java.net/issues/buglist.cgi?Submit+query=Submit+query&amp;component=java3d&amp;issue_status=NEW&amp;issue_status=STARTED&amp;issue_status=REOPENED">list
+of open
issues</a>)</li>
<li>Testing and example programs for programmable shaders</li>
</ul>
diff --git a/www/j3d1_4/multipass.html b/www/j3d1_4/multipass.html
new file mode 100644
index 0000000..483adfb
--- /dev/null
+++ b/www/j3d1_4/multipass.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D 1.5: Multipass Support</title>
+</head>
+<body>
+<h2>Java&nbsp;3D<sup><font size="-2">TM</font></sup> 1.5:
+Multipass Support</h2>
+<h3><span style="color: rgb(0, 153, 0);"><i>ROUGH DRAFT: This API
+is a Work in Progress</i></span></h3>
+<hr>
+<p>This page describes the proposed Multipass Support in Java&nbsp;3D
+1.5...
+</p>
+<p>The proposed API is:</p>
+<ul>
+ <li>New classes</li>
+ <ul>
+ <pre>public class XXXXX extends YYYYY<br> method: setXxxxx()<br></pre>
+ </ul>
+ <li>New methods in existing classes:<br>
+ </li>
+ <ul>
+ <pre>XXXXX<br> method: setXxxxx()<br></pre>
+ </ul>
+</ul>
+<p>More info here...
+</p>
+<p><font color="gray">Page last updated &#8212;
+$Date$
+</font></p>
+</body>
+</html>
diff --git a/www/j3d1_4/proposed-changes.html b/www/j3d1_4/proposed-changes.html
index 04dede8..d0e57bb 100644
--- a/www/j3d1_4/proposed-changes.html
+++ b/www/j3d1_4/proposed-changes.html
@@ -3,13 +3,14 @@
<head>
<meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1">
- <title>Proposed Java 3D 1.4 API Changes</title>
+ <title>Proposed Java 3D API Changes</title>
</head>
<body>
-<h2>Proposed Java&nbsp;3D<sup><font size="-2">TM</font></sup> 1.4 API
+<h2>Proposed Java&nbsp;3D<sup><font size="-2">TM</font></sup> API
Changes</h2>
<p>This page highlights the proposed changes to the 1.4 version of the
-Java&nbsp;3D<sup><font size="-2">TM</font></sup> API. For a list of new
+Java&nbsp;3D<sup><font size="-2">TM</font></sup> API, and beyond. For a
+list of new
classes methods, etc., see the <a href="api-changes.html">List of
Proposed Java&nbsp;3D 1.4 API
Changes</a>. Click
@@ -20,101 +21,114 @@ javadocs for the proposed 1.4 API</a> (built from the dev-1_4 branch).
A list of other <a href="improvements.html">possible improvements to
Java&nbsp;3D version 1.4</a> is also available.
</p>
-<h3>I. High Priority Features</h3>
-<p>This list of high priority features will almost certainly make it
-into the 1.4 API.
-</p>
-<h4>1. Proposed API to be added</h4>
-<p>This is a list of features that we propose to add to
-the API.<br>
-</p>
-<ul>
- <li><a href="shaders.html">Programmable
+<table style="text-align: left; width: 100%;" border="0" cellspacing="4"
+ cellpadding="4">
+ <tbody>
+ <tr>
+ <td
+ style="text-align: left; vertical-align: top; background-color: rgb(255, 255, 225); width: 60%;">
+ <h3>1.4 Committed Features<br>
+ </h3>
+ <p>This list of high priority features will almost certainly make
+it
+into the 1.4 version of the Java&nbsp;3D API.</p>
+ <ul>
+ <li><a
+ href="file:///home/kcr/java3d/1.3.3/j3d-core/www/j3d1_4/shaders.html">Programmable
Shaders</a></li>
- <li><a href="graph-change-listener.html">Scene graph structure change
+ <li><a
+ href="file:///home/kcr/java3d/1.3.3/j3d-core/www/j3d1_4/graph-change-listener.html">Scene
+graph structure change
listeners</a></li>
- <li><a
+ <li><a
href="http://javadesktop.org/java3d/javadoc/1.4.0-latest/javax/media/j3d/SceneGraphObject.html#setName%28java.lang.String%29">Name
string</a> for all scene graph objects: add public <a
href="http://javadesktop.org/java3d/javadoc/1.4.0-latest/javax/media/j3d/SceneGraphObject.html#setName%28java.lang.String%29"><code>get/setName(String)</code></a>
to <code>SceneGraphObject</code>
class</li>
- <li>New <a
+ <li>New <a
href="http://javadesktop.org/java3d/javadoc/1.4.0-latest/javax/media/j3d/Node.html#ALLOW_PARENT_READ"><code>ALLOW_PARENT_READ</code></a>
capability bit in <code>Node</code>
class that will allow <a
href="http://javadesktop.org/java3d/javadoc/1.4.0-latest/javax/media/j3d/Node.html#getParent%28%29"><code>getParent()</code></a>
to be called on live/compiled scene graph</li>
- <li>Ability to get the locale from a live node: add public <code>getLocale()</code>
+ <li>Ability to get the locale from a live node: add public <code>getLocale()</code>
method and <code>ALLOW_LOCALE_READ</code> capability bit to <code>Node</code>
class<br>
- </li>
- <li>Additional blending functions, for example: <code>BLEND_SRC_COLOR</code>,
- <code>BLEND_ONE_MINUS_SRC_COLOR</code>, <code>BLEND_DST_COLOR</code>,
- <code>BLEND_ONE_MINUS_DST_COLOR</code>, etc.</li>
- <li><a href="picking.html">Additional core picking methods</a> (in
+ </li>
+ <li>Additional blending functions, for example: <code>BLEND_SRC_COLOR</code>,
+ <code>BLEND_ONE_MINUS_SRC_COLOR</code>, <code>BLEND_DST_COLOR</code>,
+ <code>BLEND_ONE_MINUS_DST_COLOR</code>, etc.</li>
+ <li><a
+ href="file:///home/kcr/java3d/1.3.3/j3d-core/www/j3d1_4/picking.html">Additional
+core picking methods</a> (in
Locale and BranchGroup)</li>
- <li><a href="stencil.html">Stencil buffer</a><br>
- </li>
-</ul>
-<h4>2. Proposed API to be deprecated</h4>
-<p>This is a list of features that we propose to
-deprecate in
+ <li><a
+ href="file:///home/kcr/java3d/1.3.3/j3d-core/www/j3d1_4/stencil.html">Stencil
+buffer</a><br>
+ </li>
+ </ul>
+ <p>This is a list of features that we propose to <a
+ href="#Footnote_1">deprecate<sup>1</sup></a> in
the API.<br>
-</p>
-<ul>
- <li><code>CompressedGeometry</code> (no HW support, lack of industry
+ </p>
+ <ul>
+ <li><code>CompressedGeometry</code> class (no HW support, lack
+of
+industry
acceptance)</li>
- <li><code>Sensor</code> prediction (has never been implemented)<br>
- </li>
- <li><code>PickPoint</code> (not fully implemented, cannot be used for
+ <li>Sensor prediction (has never been implemented)<br>
+ </li>
+ <li><code>PickPoint</code> class (not fully implemented, cannot
+be
+used for
geometry-based picking; use PickBounds with
a
BoundingSphere that has a small radius)</li>
-</ul>
-<p>Note that none of these features will actually be removed. It
-instead
-reflects a decrease of emphasis on these features. While they should
-continue
-to function normally, no additional effort is likely to be put into
-them (for example, compressed geometry will not be supported with
-programmable shaders). This action paves the way to remove them from a
-future major release (e.g., a 2.0 release).<br>
-</p>
-<h3>II. Medium Priority Features</h3>
-<p>This list of medium priority features is under discussion for
+ <li><code></code><code>Morph</code> node (expensive, picking
+doesn't
+work,
+can be done
+in a utility)</li>
+ </ul>
+ </td>
+ <td
+ style="text-align: left; vertical-align: top; background-color: rgb(235, 255, 235);"
+ colspan="1" rowspan="4">
+ <h3>Other Features for 1.4, 1.5, ...<br>
+ </h3>
+ <p>This list of medium priority features is under discussion for
possible inclusion
-into the 1.4 API.
-</p>
-<h4>1. Possible API to be added</h4>
-<p>This is a list of features that are being considered
-for addition to
-the API.<br>
-</p>
-<ul>
- <li><a href="render-texture.html">Render to texture</a></li>
- <li>Non-power-of-two textures</li>
- <li>Point sprites</li>
- <li>Ability for nested ViewSpecificGroup nodes to replace the set of
-views in addition to
-current intersection semantics</li>
- <li>API support for&nbsp; retained alpha buffers</li>
- <li>Ability to query properties from a <code>GraphicsConfiguration</code></li>
- <li>Better support for off-screen configuration parameters (e.g., an
+into the 1.4 or 1.5 API (or beyond). </p>
+ <ul>
+ <li>Non-power-of-two textures</li>
+ <li>Point sprites</li>
+ <li><a
+ href="file:///home/kcr/java3d/1.3.3/j3d-core/www/j3d1_4/vsg-op.html">Ability
+for nested ViewSpecificGroup nodes
+to replace the set of views</a><br>
+ </li>
+ <li>API support for&nbsp; retained alpha buffers</li>
+ <li>Ability to query properties from a <code>GraphicsConfiguration</code></li>
+ <li>Better support for off-screen configuration parameters
+(e.g., an
attribute in <code>GraphicsConfigTemplate3D</code> indicating whether
the requested <code>GraphicsConfiguration</code> is used for on-screen
rendering,
off-screen rendering, or both)</li>
- <li>Enhance <code>getLocalToVWorld()</code> to return a valid result
+ <li>Enhance <code>getLocalToVWorld()</code> to return a valid
+result
for non-live graphs.</li>
- <li><a href="lightweight-canvas3d.html">Lightweight Canvas3D (e.g.,
+ <li><a
+ href="file:///home/kcr/java3d/1.3.3/j3d-core/www/j3d1_4/lightweight-canvas3d.html">Lightweight
+Canvas3D (e.g.,
JCanvas3D)</a>. <span style="color: rgb(204, 0, 0);">Note: this
feature
will not
happen
without an someone from the community volunteering
to drive it.</span></li>
- <li>Add a new attribute for depth test function to
+ <li>Add a new attribute for depth test function to
RenderingAttributes: public <code>get/setDepthTestFunction(int&nbsp;function)</code>
methods that takes as values one of: <code>ALWAYS, NEVER,
EQUAL, NOT_EQUAL, LESS, LESS_OR_EQUAL, GREATER, GREATER_OR_EQUAL</code>.
@@ -124,7 +138,8 @@ will not
happen
without an someone from the community volunteering
to drive it.</span></li>
- <li>Method to retrieve the geometry data from the tessellation of a
+ <li>Method to retrieve the geometry data from the tessellation
+of a
glyph in a 3D font: a
public <code>GeometryArray&nbsp;getGlyphGeometry(</code><code>int&nbsp;glyphCode</code><code>)</code>
method in the <code>Font3D</code> class. <span
@@ -132,49 +147,71 @@ method in the <code>Font3D</code> class. <span
happen
without an someone from the community volunteering
to drive it.</span><span style="color: rgb(204, 0, 0);"></span></li>
-</ul>
-<h4>2. Possible API to be deprecated</h4>
-<p>This is a list of features that are being considered
-for deprecation in
-the API.<br>
-</p>
-<ul>
- <li><code></code><code>Morph</code> (expensive, picking doesn't work,
-can be done
-in a utility)</li>
-</ul>
-<p>These are in addition to the API being proposed for deprecation in
-section I.
-</p>
-<h3><a name="Future_Features"></a>III. Future Features</h3>
-<p>Here is an unprioritized list of possible features under
-consideration for a future (e.g., 1.5/2.0)
-version of the Java&nbsp;3D API.
-</p>
-<ul>
- <li>Multipass rendering</li>
- <li>Shadow map support</li>
- <li>Additional texture formats:
- <ul>
- <li>NIO buffer support</li>
- <li>Texture compression formats</li>
- </ul>
- </li>
- <li>Extensibility:
- <ul>
- <li>Access to the native context (JOGL integration)</li>
- <li>Geometry extensibility</li>
- <li>Additional node types (e.g., haptic rendering)</li>
- <li>Extensible geometry processing algorithms</li>
- </ul>
- </li>
- <li>Plug-in capability
- <ul>
- <li>Rendering Device Interface (pluggable renderers)</li>
- <li>Visibility structure</li>
- </ul>
- </li>
-</ul>
+ <li>Additional texture formats:
+ <ul>
+ <li>NIO buffer support</li>
+ <li>Texture compression formats</li>
+ </ul>
+ </li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="text-align: left; vertical-align: top; background-color: rgb(255, 255, 203); width: 60%;">
+ <h3>1.5 Proposed Major Features</h3>
+ <p>This list of high priority features is being seriously
+considered for the 1.5 version of the Java&nbsp;3D API.</p>
+ <ul>
+ <li><a href="render-texture.html">Render to texture</a></li>
+ <li><a href="multipass.html">Multipass rendering</a></li>
+ <li>Shadow map support</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="text-align: left; vertical-align: top; background-color: rgb(255, 255, 182); width: 60%;">
+ <h3>1.6 Possible Major Features</h3>
+ <p><span style="font-style: italic;">Not yet planned</span><br>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td
+ style="text-align: left; vertical-align: top; background-color: rgb(255, 255, 164); width: 60%;">
+ <h3><a name="Future_Features"></a>2.0 Possible Major Features</h3>
+ <p>Here is an unprioritized list of possible features under
+consideration for a future 2.0 version of the Java&nbsp;3D API. </p>
+ <ul>
+ <li>Extensibility:
+ <ul>
+ <li>Access to the native context (JOGL integration)</li>
+ <li>Geometry extensibility</li>
+ <li>Additional node types (e.g., haptic rendering)</li>
+ <li>Extensible geometry processing algorithms</li>
+ </ul>
+ </li>
+ <li>Plug-in capability
+ <ul>
+ <li>Rendering Device Interface (pluggable renderers)</li>
+ <li>Visibility structure</li>
+ </ul>
+ </li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p><small><a name="Footnote_1"></a>1 &#8211; Note that deprecated
+features will not actually be removed. It
+instead
+reflects a decrease of emphasis on these features. While they should
+continue
+to function normally, no additional effort is likely to be put into
+them (for example, compressed geometry will not be supported with
+programmable shaders). This action paves the way to remove them from a
+future major release (e.g., a 2.0 release).</small></p>
<p><font color="gray">Page last updated &#8212;
$Date$
</font></p>
diff --git a/www/j3d1_4/render-texture.html b/www/j3d1_4/render-texture.html
index 05cf1e9..42d74ab 100644
--- a/www/j3d1_4/render-texture.html
+++ b/www/j3d1_4/render-texture.html
@@ -3,31 +3,76 @@
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
- <title>Java 3D 1.4: Render To Texture</title>
+ <title>Java 3D 1.5: Render To Texture</title>
</head>
<body>
-<h2>Java&nbsp;3D<sup><font size="-2">TM</font></sup> 1.4:
+<h2>Java&nbsp;3D<sup><font size="-2">TM</font></sup> 1.5:
Render To Texture</h2>
<h3><span style="color: rgb(0, 153, 0);"><i>ROUGH DRAFT: This API
is a Work in Progress</i></span></h3>
<hr>
<p>This page describes the possible render-to-texture feature in
-Java&nbsp;3D 1.4...
+Java&nbsp;3D 1.5. The main idea is to create new
+"render-to-texture" subclasses of Canvas3D and View that would render
+into a texture that could then be used in a scene graph to render into
+an ordinary on-screen (or off-screen) Canvas3D. We will either need to
+create special "rendered" subclasses of Texture (e.g.,
+RenderedTexture2D), or add a mode flag to the existing texture classes.
+The former is cleaner from an API point of view, but the latter is more
+flexible (e.g., it would allow some mipmap levels of a Texture or faces
+of a TextureCubeMap to be generated by rendering and others to be
+specified via an image).<br>
</p>
+<p>NOTES:<br>
+</p>
+<ul>
+ <li>A TextureView is rendered when any View that references a scene
+graph containing its RenderedTexture object is rendered. The ordinary
+View is said to be <em>dependent</em> on the TextureView.</li>
+ <li>Each TextureView is rendered before its <em>dependent</em>
+View(s).<br>
+ </li>
+ <li>RenderedTexture objects cannot be in a scene graph that is
+rendered by a TextureView. Violating this will lead to undefined
+results. We may want to consider relaxing this restriction to allow for
+cascading render-to-texture operations. If we do relax this, we may
+need to provide a way for the application to specify an ordering of
+TextureViews (determining the dependency graph would be difficult).<br>
+ </li>
+ <li>To make it easier for an app to comply with the above, we will
+add a new feature to View: a boolean
+attribute indicating whether to render <strong><em>only</em></strong>
+to nodes under a ViewSpecificGroup. This flag is false by default for
+an ordinary View and true by default for a TextureView.</li>
+</ul>
<p>The proposed API is:</p>
<ul>
<li>New classes</li>
<ul>
- <pre>public class XXXXX extends YYYYY<br> method: setXxxxx()<br></pre>
+ <pre>public class TextureView extends View<br> method: setXxxxx() // Any methods here?<br><br>public class TextureCanvas3D extends Canvas3D<br> method: setRenderedTexture(RenderedTexture) // or should this be immutable?<br> method: setLevel(int level)<br> method: setFace(int face)<br> // override lots of Canvas-related methods and throw UnimplementedException<br><br>public class RenderedTexture extends Texture<br> method: setXxxxx() // Any methods here?<br><br>public class RenderedTexture2D extends RenderedTexture<br> method: setXxxxx() // Any methods here?<br><br>public class RenderedTexture3D extends RenderedTexture<br> method: setXxxxx() // Any methods here?<br><br>public class RenderedTextureCubeMap extends RenderedTexture<br> method: setXxxxx() // Any methods here?<br></pre>
</ul>
<li>New methods in existing classes:<br>
</li>
<ul>
- <pre>XXXXX<br> method: setXxxxx()<br></pre>
+ <pre>View<br> method: setViewSpecificGroupOnly(boolean)<br></pre>
</ul>
</ul>
-<p>More info here...
+<p>Issues:
</p>
+<ol>
+ <li>Can the resulting image be read back to the application?<br>
+ <span style="font-style: italic;">[we don't plan to allow this]</span><br>
+ </li>
+ <li>What is the best way to ensure that there is a valid source of
+all mipmap levels (and all faces of a cube-map)?</li>
+ <li>Should RenderedTexture be a mode or a subclass?<span
+ style="font-style: italic;"><br>
+[currently proposed to be a subclass]</span></li>
+ <li>Since this feature encourages using implicit mipmap generation,
+we need to file an RFE to implement implicit mipmap generation using
+OpenGL HW mipmap generation.<br>
+ </li>
+</ol>
<p><font color="gray">Page last updated &#8212;
$Date$
</font></p>
diff --git a/www/j3d1_4/stencil.html b/www/j3d1_4/stencil.html
index 0b51ac8..dfa706c 100644
--- a/www/j3d1_4/stencil.html
+++ b/www/j3d1_4/stencil.html
@@ -8,29 +8,51 @@
<body>
<h2>Java&nbsp;3D<sup><font size="-2">TM</font></sup> 1.4:
Stencil Buffer</h2>
-<h3><span style="color: rgb(0, 153, 0);"><i>ROUGH DRAFT: This API
-is a Work in Progress</i></span></h3>
-<hr>
+<p><span style="color: rgb(204, 0, 0);"><i>NOTE: THIS DOES NOT INCLUDE
+ANY MULTIPASS SUPPORT&nbsp;</i></span>
+</p>
<p>This page describes the proposed API changes for stencil buffer
support in Java&nbsp;3D
-1.4...
+1.4. The GraphicsConfigTemplate3D class is used to find a
+GraphicsConfiguration object with the desired attributes. These
+attributes include number of color bits (red, green, and blue size),
+depth buffer size, and whether or not double-buffering, stereo, or
+antialiasing is needed. The GraphicsConfiguration is used in turn used
+to create a Canvas3D into which Java&nbsp;3D can render.<br>
+</p>
+<p>We propose to add a
+new StencilSize attribute to GraphicsConfigTemplate3D that will allow
+an application to create a Canvas3D (on-screen or off-screen) with a
+stencil buffer. We also propose to add new attributes to the
+RenderingAttributes object that will allow an application to control
+the stencil test and update. These will work in a similar manner to the
+equivalent OpenGL methods. Note that since multipass support is not yet
+available, applications wishing to use stencil will need to make use of
+OrderedGroup (or use mixed-mode / immediate-mode rendering).<br>
</p>
-<p>NOTE: THIS WILL NOT INCLUDE ANY MULTIPASS SUPPORT in 1.4
+<p>The proposed API changes are:<br>
</p>
-<p>The proposed API is:</p>
<ul>
- <li>New classes</li>
- <ul>
- <pre>public class XXXXX extends YYYYY<br> method: setXxxxx()<br></pre>
- </ul>
<li>New methods in existing classes:<br>
</li>
<ul>
- <pre>XXXXX<br> method: setXxxxx()<br></pre>
+ <pre>GraphicsConfigTemplate3D<br> method: setStencilSize(int) // default=0<br><br>RenderingAttributes<br> method: setStencilEnable(boolean enable)<br> method: setStencilOp(int fail, int zfail, int zpass)<br> method: setStencilFunc(int func, int ref, int mask)<br> method: setStencilMask(int mask)<br></pre>
</ul>
</ul>
-<p>More info here...
+<p>Issues:<br>
</p>
+<ol>
+ <li>How/when is the stencil buffer cleared? Implicitly at the start
+of a frame? Explicitly? The latter seems problematic.<br>
+ <span style="font-style: italic;">[Current plan is to clear
+implicitly
+at the start of each frame and not provide explicit control]</span><br>
+ </li>
+ <li>Does the OpenGL stencil functionality map cleanly to DirectX? If
+not, then stencil support may not be available for the D3D version of
+Java&nbsp;3D.<br>
+ </li>
+</ol>
<p><font color="gray">Page last updated &#8212;
$Date$
</font></p>
diff --git a/www/j3d1_4/vsg-op.html b/www/j3d1_4/vsg-op.html
new file mode 100644
index 0000000..64db9ad
--- /dev/null
+++ b/www/j3d1_4/vsg-op.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D 1.4: ViewSpecificGroup View Set Operation</title>
+</head>
+<body>
+<h2>Java&nbsp;3D<sup><font size="-2">TM</font></sup> 1.4:
+ViewSpecificGroup View Set Operation<br>
+</h2>
+<p>This page describes a possible enhancement to Java&nbsp;3D 1.4 to
+allow the application to specify the operation used to compute the set
+of views for nested
+ViewSpecificGroup (VSG) nodes. Currently, the set of views used to
+render descendants of nested VSG nodes is the intersection of the set
+of views
+inherited from its
+parent(s) and the set of views specified in the child VSG node. We
+propose to
+add an attribute to VSG such that the resulting set of views is either
+as the intersection or the union of the set of views inherited from its
+parent(s) and the set of views specified in the child VSG node, or
+simply the set of views specified in the child VSG node. More formally,
+we plan to define three modes as follows:
+</p>
+<ul>
+ <table border="0" cellspacing="2" cellpadding="2">
+ <tbody>
+ <tr>
+ <td><code>INTERSECT</code></td>
+ <td><code>:</code></td>
+ <td><code>viewSet[n]
+=
+viewSet[n-1] &#8745; VSG[n].viewSet</code></td>
+ </tr>
+ <tr>
+ <td><code>UNION</code></td>
+ <td><code>:</code></td>
+ <td><code>viewSet[n]
+=
+viewSet[n-1] &#8746; VSG[n].viewSet</code></td>
+ </tr>
+ <tr>
+ <td><code>REPLACE</code></td>
+ <td><code>:</code></td>
+ <td><code>viewSet[n]
+=
+VSG[n].viewSet</code> </td>
+ </tr>
+ </tbody>
+ </table>
+ <br>
+where <code>n</code> is the nesting level (the number of ancestor VSG
+nodes in the
+scene graph path).<br>
+The default mode is <code>INTERSECT</code>.
+</ul>
+<p>Note that the set of views used to render descendants of a top-level
+VSG node (that is, a VSG node that is not itself a descendant of
+another VSG node) is the set of views specified in the VSG node,
+regardless of the mode. More
+formally: <code>viewSet[0]&nbsp;=&nbsp;VSG[0].viewSet</code> for all
+values of <code>viewSetOp</code>.<br>
+</p>
+<p>The proposed API is:</p>
+<ul>
+ <li>New methods in existing classes:<br>
+ </li>
+ <ul>
+ <pre>ViewSpecificGroup<br> method: setViewSetOp(int op) // one of: INTERSECT, UNION, REPLACE<br></pre>
+ </ul>
+</ul>
+<ol>
+</ol>
+<p><font color="gray">Page last updated &#8212;
+$Date$
+</font></p>
+</body>
+</html>