|
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
|