{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"3D Plugin Configuration","description":"Accelerate E&P application development and protect your innovation by consuming our Data and Domain APIs / Platform APIs.","lang":"en-US","meta":[{"name":"robots","content":"noindex"}],"llmstxt":{"hide":false}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"3d-plugin-configuration","__idx":0},"children":["3D Plugin Configuration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"3d-and-cross-plot-module-suite-configuration","__idx":1},"children":["3D and Cross-Plot Module Suite Configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you develop with INTViewer, you will experience the following dialog when you open a 3D window or a Cross-Plot window:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The stack trace will look like this:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"java.lang.NullPointerException\nat sun.java2d.SunGraphics2D.validateColor(SunGraphics2D.java:1697)\nat sun.java2d.SunGraphics2D.<init>(SunGraphics2D.java:255)\nat sun.java2d.d3d.D3DScreenUpdateManager.validate(D3DScreenUpdateManager.java:491)\nat sun.java2d.d3d.D3DScreenUpdateManager.createGraphics(D3DScreenUpdateManager.java:265)\nat sun.awt.windows.WComponentPeer.getGraphics(WComponentPeer.java:603)\nat java.awt.Component.getGraphics(Component.java:3027)\nat sun.awt.RepaintArea.paint(RepaintArea.java:227)\nat sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:347)\nat java.awt.Component.dispatchEventImpl(Component.java:4948)\nat java.awt.Component.dispatchEvent(Component.java:4698)\nat java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)\nat java.awt.EventQueue.access$300(EventQueue.java:103)\nat java.awt.EventQueue$3.run(EventQueue.java:706)\nat java.awt.EventQueue$3.run(EventQueue.java:704)\nat java.security.AccessController.doPrivileged(Native Method)\nat java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)\nat java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)\nat java.awt.EventQueue$4.run(EventQueue.java:720)\nat java.awt.EventQueue$4.run(EventQueue.java:718)\nat java.security.AccessController.doPrivileged(Native Method)\nat java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)\nat java.awt.EventQueue.dispatchEvent(EventQueue.java:717)\nat org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This error is due to an incompatibility between the OpenGL rendering and the Java2D rendering. This error only occurs in development as INTViewer is configured in the ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["etc/intviewer.conf"]}," file to disable 2D rendering for 3D and Cross-Plot windows."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["etc/intviewer.conf"]}," configuration file is not read when developing with INTViewer, only when running the standard INTViewer distribution. When you develop your own plugin, you need to set the properties of your module suite."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Typically, the platform.properties file of your module suite should contain the following ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["run.args.extra"]}," line:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["run.args.extra=",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["-J-Djogl.disable.opengles=true"]}," -J-Dnb.winsys.sliding.effects=true ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["-J-Dsun.java2d.noddraw=true"]}," -J-Dnetbeans.indexing.noFileRefresh=true -J-da -J-Djava.util.logging.config.file=${progdir}/../intlogging.properties -J-Xms600M -J-Xmx3G -J-Duser.language=en -J-Duser.country=US"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This run.args.extra line can only be configured in module suites, not standalone modules. When you create a \"real world\" INTViewer project, make sure to create a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["module suite"]}," so that you have control over this property, as well as others such as the memory requirements."]}]},"headings":[{"value":"3D Plugin Configuration","id":"3d-plugin-configuration","depth":1},{"value":"3D and Cross-Plot Module Suite Configuration","id":"3d-and-cross-plot-module-suite-configuration","depth":2}],"frontmatter":{"title":"3D Plugin Configuration","pageId":"intviewer-platform-and-modules/3d-plugin-configuration","seo":{"title":"3D Plugin Configuration"}},"lastModified":"2026-10-22T14:32:05.576Z","pagePropGetterError":{"message":"","name":""}},"slug":"/solutions/intviewer/intviewer-platform-and-modules/3d-plugin-configuration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}