Forums > Jitter

[Bug report] Jitter texture disparition


VG
January 31, 2008 | 12:27 pm

Hi list,

did anyone experienced texture disparition
when switching between 2 different jit.window sizes?

This disparition occured only on textures which
were used on some GL objects. The other instances of jit.gl.texture
which are not being used by GL objects remain unaffected.
Those which disappear make the GL object go black
(but it is still there : it’s OK to send another *still valid* texture’s
name to the GL object)
I am not using "fullscreen", but [rect x1 y1 x2 y2] message.

This happens in a really random way…. can’t get any stripped
patch where this is clearly reproductible, but *it happens* often
enough though.

If i ever get to this point, i’ll surely send a example patch for report,
but since this issue exists for quite a while now, I thought maybe someone
encounter this problem’s symptoms.

Thanks for any hint …
Vincent

System :
Max/MSP 4.6.2 / Jitter 1.6.3
Windows XP
CPU : Intel T7200 @ 2Ghz
RAM 2Go
NVIDIA GeForce 7900 GTX


February 1, 2008 | 10:07 pm

Hi ,

I have similar problem on OSX with jitter 1.6.3
When I run the fullscreen mode, one of my texture disapears from a jit.gl.gridshape object, but not the others textures/others gl objects. always the same.
Same thing if I erase one gl object ou create a new one in the context.
Does anyone could give some advice ?

Thank you.


February 2, 2008 | 1:33 pm

it should not happen when gl objects are given the @automatic 0 attribute and rendered in proper order.


February 2, 2008 | 4:09 pm

Hi,
could you give help about rendering order questions.

1) it seems Tut 31 – more render destination – is not update,
look at page 278 :

"Each time a jit.gl.render object receives a bang message, it draws all of the GL group objects that have been added to its context.
It draws the objects in the order in which they were added to the context.
In this case, the yellow circle was added to the draw context named "B" after the blue circle, so it appears on top."

It’s False : if you select the yellow circle last, the blue one appears on top and the yellow circle is hidden.

Am I right ?
I’m on OSX with jitter 1.6.3 and Max 4.6.

2) since rendering order theorie is not so obvious some clarification are required :
- how to render in proper order (I mean with gl’s) ?
- how (and why) to use the @automatic 0 ? (nothing about this attribute in jitter tutorial)
- Does a patch with several gl objects need several renders ?
- and finally what are the rules with rendering ? (since I’m personally not an open gl specialist or video engineer)

So many thanks .



VG
February 4, 2008 | 7:25 am

Otto: I do use automatic for *all* jitter objects I use … except
jit.gl.texture, which I assumed
to be "banged" every time a GL object using one of them is banged itself….
Maybe I’m wrong on this point… could any Joshua confirm this? :)
I’ll try some test on stripped patch anyway on this point..
Still, is it not a strange thing that layers change index while
recomputing the same overall GL scene, no?

Now, I understand from what you say, there could be some recalculation
of the GL scene
when changing window size, that may move used the jit.gl.texture to a
postponed position
in the layers.
I admit I usually do not bang the gl.texture.

Derrick Giscloux :
> 2) since rendering order theorie is not so obvious some clarification are required :
> – how to render in proper order (I mean with gl’s) ?
1. Bang the objects to be rendered
2. Bang the render
>
> – how (and why) to use the @automatic 0 ? (nothing about this attribute in jitter tutorial)
>
How : simply add attribut "@automatic 0" in the object box at creation,
or turn it on with "automatic 0/1" message sent to any GL object.
Why : (at least two major reasons, but there’s more to this) :
— it’s no use to compute GL objects you do not want to render,
which might be the case in any complex patch
— it allows to compute several scene with objects rendered at
different position in on single render tick
(e.g.: to render the 4 wheels of a car, simply define 1 wheel
object with, say, a jit.gl.sketch. Then bang the jit.gl.sketch 4 times
updating the position
of the wheel for the 4 of them, *then*, bang the render to display the 4
wheels at one)

> – Does a patch with several gl objects need several renders ?
>
No, given the answer to the previous question
> – and finally what are the rules with rendering ? (since I’m personally not an open gl specialist or video engineer)
>
Be super optimized.
I personnally still hope I can avoid the metro object… but that
quickly turns to a real challenge ;)
There are some essential ideas which you can find in Andrew ‘ jitter
recipes, plus some patch from Mr vade in the forum archive which are
good starting point.
good luck

vincent
http://www.pucemuse.com


February 4, 2008 | 1:57 pm



VG
February 4, 2008 | 11:57 pm

the automatic 0 didn’t change anything on the texture disparition issue…
Since it happens quite unpredicably, I guess this is not due to a
*feature*…
I couldn’t get to a proper repeatable exemple at this point though..
(still trying, dichotomizing the patch..)

> could you show an example or point to one ?
>
Here you are :

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 368 481 45 9109513 loadbang;
#P message 192 248 68 9109513 fullscreen $1;
#P message 265 249 55 9109513 noaccel $1;
#P toggle 265 231 15 0;
#P toggle 175 248 15 0;
#P newex 217 223 35 9109513 sel 27;
#P newex 175 223 40 9109513 key;
#P newex 192 270 62 9109513 jit.window fff;
#P message 481 520 26 9109513 read;
#P message 285 518 60 9109513 texture latex;
#P message 400 520 65 9109513 read chilis.jpg;
#P newex 400 542 191 9109513 jit.gl.texture fff @name latex @automatic 0;
#B color 5;
#P newex 82 342 33 9109513 r draw;
#P newex 89 264 35 9109513 s draw;
#P newex 82 371 103 9109513 t b b b b b b b b;
#B color 5;
#P newex 82 547 283 9109513 jit.gl.gridshape fff @automatic 0 @shape
circle @scale 0.3 0.3 1.;
#B color 5;
#P message 95 418 89 9109513 position -0.5 -0.5 0.;
#P message 121 446 86 9109513 position 0.5 -0.5 0.;
#P message 147 471 86 9109513 position -0.5 0.5 0.;
#P message 173 496 83 9109513 position 0.5 0.5 0.;
#P toggle 79 182 15 0;
#P newex 79 230 56 9109513 t b b erase;
#P newex 79 209 57 9109513 qmetro 40;
#P newex 79 312 199 9109513 jit.gl.render fff @erase_color 1. 1. 1. 1.;
#P fasten 9 0 8 0 87 476 87 476;
#P fasten 9 2 8 0 113 504 87 504;
#P fasten 9 4 8 0 139 518 87 518;
#P fasten 9 6 8 0 165 532 87 532;
#P connect 9 7 4 0;
#P connect 9 5 5 0;
#P connect 9 3 6 0;
#P connect 11 0 9 0;
#P connect 9 1 7 0;
#P connect 23 0 14 0;
#P connect 23 0 13 0;
#P connect 15 0 12 0;
#P connect 13 0 12 0;
#P connect 21 0 16 0;
#P connect 22 0 16 0;
#P connect 20 0 21 0;
#P fasten 18 0 19 0 222 245 180 245;
#P fasten 19 0 22 0 191 263 191 248;
#P fasten 17 0 18 0 216 240 216 225;
#P connect 14 0 8 0;
#P fasten 7 0 8 0 100 499 87 499;
#P fasten 6 0 8 0 126 513 87 513;
#P fasten 5 0 8 0 152 525 87 525;
#P fasten 4 0 8 0 178 538 87 538;
#P connect 3 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 0 0;
#P fasten 2 2 0 0 130 301 84 301;
#P connect 2 1 10 0;
#P window clipboard copycount 24;


Viewing 7 posts - 1 through 7 (of 7 total)