[GRASS-dev] wxNviz rendering order problem

Michael Barton Michael.Barton at asu.edu
Sun Mar 3 13:00:54 PST 2013


I just tried this, and it turns out that I DO get the same result you do. Also, trying to view any 3D vector in nviz gives the following error:

Starting 3D view mode...
Loading raster map <elevation at PERMANENT>...
Loading raster map <elevation at PERMANENT>...
Translating colors from raster map <elevation at PERMANENT>...
Vector map <firestations3D at grass7vect_sqlite> loaded (7
points)
No features from vector map
<firestations3D at grass7vect_sqlite> fall within current
region
Error loading vector map <firestations3D at grass7vect_sqlite>
Loading vector map <firestations3D at grass7vect_sqlite> (lines) failed



Unfortunately, your fix does not work for me. Changing /nviz/mapwindow.py at line 76 to ...

        from wx.glcanvas import WX_GL_DEPTH_SIZE
        attribs=[WX_GL_DEPTH_SIZE,16,0]
        glcanvas.GLCanvas.__init__(self, parent, id, attribList=attribs)


...breaks nviz entirely. Even rasters won't display after this code change. Here is the error in the console:

glcanvas.GLCanvas.__init__(self, parent, id,
attribList=attribs)
  File "/Applications/GRASS/GRASS-7.0.app/Contents/MacOS/etc
/python/wx/glcanvas.py", line 103, in __init__

_glcanvas.GLCanvas_swiginit(self,_glcanvas.new_GLCanvas(*arg
s, **kwargs))
wx._core
.
PyAssertionError
:
C++ assertion "fmt" failed at /BUILD/wxPython-
src-2.8.12.1/src/mac/carbon/glcanvas.cpp(228) in Create():
Couldn't create OpenGl pixel format


The terminal window gives a different error:

Exception AttributeError: "'GLWindow' object has no attribute 'timerAnim'" in <bound method GLWindow.__del__ of <nviz.mapwindow.GLWindow;  >> ignored


I'm using GRASS 7 r55179

MIchael

____________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Arizona State University

voice:  480-965-6262 (SHESC), 480-727-9746 (CSDC)
fax:          480-965-7671 (SHESC),  480-727-0709 (CSDC)
www: http://www.public.asu.edu/~cmbarton, http://csdc.asu.edu











On Mar 3, 2013, at 1:24 PM, Michael Barton <michael.barton at asu.edu<mailto:michael.barton at asu.edu>> wrote:

Anna,

I have not noticed this particular problem on the Mac and I DO use wxPython 2.8.12.

I've noticed a different issue of vector colors, but not this. I will try to recompile with these changes and see if it makes any difference in anything.

Michael
____________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Arizona State University

voice:  480-965-6262 (SHESC), 480-727-9746 (CSDC)
fax:          480-965-7671 (SHESC),  480-727-0709 (CSDC)
www: http://www.public.asu.edu/~cmbarton, http://csdc.asu.edu<http://csdc.asu.edu/>



On Mar 3, 2013, at 1:00 PM, <grass-dev-request at lists.osgeo.org<mailto:grass-dev-request at lists.osgeo.org>>
 wrote:

From: Anna Kratochvílová <kratochanna at gmail.com<mailto:kratochanna at gmail.com>>
Subject: [GRASS-dev] wxNviz rendering order problem
Date: March 3, 2013 11:46:21 AM MST
To: GRASS-dev <grass-dev at lists.osgeo.org<mailto:grass-dev at lists.osgeo.org>>, Helena Mitasova <hmitaso at ncsu.edu<mailto:hmitaso at ncsu.edu>>, Glynn Clements <glynn at gclements.plus.com<mailto:glynn at gclements.plus.com>>


Hi,

I have recently noticed strange behavior of wxNviz, for example vector
layer is always visible even if I use negative z coordinate and it
should be hidden below a surface. Probably, it is connected to newer
wxPython version I started to use recently (2.8.12, so it's actually
not new at all). According to the discussion [1], I tried these lines:

Index: nviz/mapwindow.py
===================================================================
--- nviz/mapwindow.py   (revision 55276)
+++ nviz/mapwindow.py   (working copy)
@@ -72,8 +72,10 @@
    def __init__(self, parent, id = wx.ID_ANY,
                 Map = None, tree = None, lmgr = None):
        self.parent = parent # MapFrame
-        glcanvas.GLCanvas.__init__(self, parent, id)
+        from wx.glcanvas import WX_GL_DEPTH_SIZE
+        attribs=[WX_GL_DEPTH_SIZE,16,0]
+        glcanvas.GLCanvas.__init__(self, parent, id, attribList=attribs)
        MapWindow.__init__(self, parent, id,
                           Map, tree, lmgr)

which solved the problem. So, I would like to know if someone noticed
this problem on other platforms than Linux. It's not clear to me if
these lines are harmless or not for other platforms and if the number
of the WX_GL_DEPTH_SIZE (= 16) can be used safely (probably different
number works on different computers, see also [2]).

Thanks for any info,
Anna


[1] http://wxpython-users.1045709.n5.nabble.com/OpenGL-depth-buffer-deosn-t-seem-to-work-in-wx-glcanvas-td5714984.html#a5714991
[2] http://stackoverflow.com/questions/14715739/how-can-i-determine-the-max-allowable-wx-gl-depth-size-for-a-wx-glcanvas




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20130303/f81becc1/attachment-0001.html>


More information about the grass-dev mailing list