From: John B. <jb...@te...> - 2005-12-06 02:53:36
|
This is related to the bug that causes VPython to shut all windows when the viewing ('scene.stereo=') window is closed regardless of what 'scene.exit' is set to. It caused me headaches/heartaches (thought my $60 video card was defective) for weeks. ----(Has that bug been fixed yet?)---- This link explains the problem and what I feared. It was intended to be referred-to in an email to nVidia's support department: http://tetrahedraverse.com/temp/nVidProb.htm ( tetrahedraverse(dot)com(fslash)temp(fslash)nVidProb(dot)htm ) (two 800x600 images are in the page; it may load slowly, if you care to look.) 1) My program (my amateur coding) uses a cheap/fast way to get a color for a cylinder, directly 'proportional' to its length. I _think_ if the cylinder-getting method produces an out-of-range number, crap happens. This didn't happen, however, until I tried using the program on tens of thousands of 'spheres' (balls, points, whatever), so I could find no rhyme nor reason to it. 2) Because this was so scary, and because it delayed screenwrites dramatically, I would either close the window immediately, or (feeling afraid) leave it run for a while. While it runs, nothing gets updated in the VPython shell, so if there were an error message there, I would not see it, and if I closed the stereo window, likewise I would not see it. 3) This evening, after writing that html page for nVidia techs to see (and now you, if you're curious), I for the first time minimized the stereo window, thinking maybe the screenwrites would complete and I could then see what my program's supposed to let me see. No such luck, BUT what that did do was take focus off of the stereo window after many long seconds, and allow me for the first time to see what was in the VPython Idle shell window. Reproducibly now, this: "Traceback (most recent call last): File "C:\Python24\Lib\site-packages\Tverse\TVVgapViewer2.py", line 114, in ? cyl=gap(xyzs,xyzs2,gapLen) File "C:\Python24\Lib\site-packages\Tverse\TVVgapViewer2.py", line 24, in gap return cylinder(pos=x1s,axis=x2s-x1s,color=gapCol,length=gapLen,radius=pRad/20.0) File "C:\PYTHON24\lib\site-packages\visual\primitives.py", line 131, in __init__ process_init_args_from_keyword_dictionary(self, keywords) File "C:\PYTHON24\lib\site-packages\visual\primitives.py", line 49, in process_init_args_from_keyword_dictionary displayobject.color = keywords['color'] ArgumentError: Python argument types in None.None(cylinder, NoneType) did not match C++ signature: None(visual::Primitive {lvalue}, visual::rgb)" My guess: due to my strange (but fast and cute) means of getting a color, occasionally my program spits a number at VPython's OpenGL system that is out of range (or, it is zero), which causes the OpenGL system to spit crap at the video card, which then shows me this horrible screen trash. It does not, however, crash the program; this oddness will continue indefinitely. It _seems_ to me from the traceback, that my rgb value was divided by a cylinder length of zero (or less), which produced a color number that, essentially, didn't exist. I would like to know if you (anyone?) concur, or, if you know what all that traceback stuff actually means (especially the last couple of lines of it, which I don't understand), could you tell me _exactly_ what it is that happened? Thanks! I love VPython, and I really need this to work. Now that Bruce et.al. have been so extraordinarily kind as to make that wonderful 'scene.stereo=crosseyed' addition to the stereo methods (VP 2.4), I can get some real work done. But this nastiness has got to go away.... Peace JB jb...@te... Web: http://tetrahedraverse.com |