Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion

Meshes, Matrices, and Recording
  • Andrew_StaceyAndrew_Stacey
    Posts: 2,132

    I have some (complicated, but what did you expect?) code in which I do a bit of matrix manipulation and have some meshes rendering with textures. I wanted to take a recording of this, but when I did then the mesh didn't render in the recording part. What was stranger still was that none of the other parts of that particular drawing rendered either (the object consisted of a couple of meshes and a bog-standard rectangle) which makes me think that it might be the matrix rather than the mesh that is causing the problem. They are "transitory" elements in that they appear when the user wants them and disappear afterwards. They are rendered when the recording is not happening, and if I invoke one during the recording and then stop the recording, they magically appear.

    I can send the codea file, but I warn you it's big. I'll try to figure out a smaller example as well in the meantime. I'm posting now in case there's something obvious.

  • ZoytZoyt
    Posts: 2,700

    Please give us the files! I'll post it in my website if you want to save space on your server. Looking forward to it!

  • Andrew_StaceyAndrew_Stacey
    Posts: 2,132

    Here's an example of the behaviour, sort of. I believe that this is related to what I see in my complicated code but the manifestation is slightly different.



    function setup() end function draw()     ortho(0,WIDTH,0,HEIGHT,180,-180)              camera(0,0,180,0,0,0,0,1,0)     background(0, 0, 0, 255)     if toggleRec then         if isRecording() then             stopRecording()         else             startRecording()         end     toggleRec = false     end     stroke(255, 0, 0, 255)     strokeWidth(6)              rectMode(CENTER)              rect(WIDTH/2,HEIGHT/2,30,100)          end function touched(touch)     if touch.state == ENDED then         toggleRec = true     end end

    The key appears to be having the camera call and to having the recording functions in the draw function.

    Notes:

    1. When I tap the screen, the recording starts (as it should). There is no "Made with Codea" slogan and the rectangle flickers nastily. If I start the recording with the onscreen buttons then the MwC slogan is still absent[1], but there is no flicker.
    2. If the recording functions are invoked in the touched routine then there is no flicker.
    3. The location of the camera call does not appear to matter.

    [1] This makes me wonder if the slogan is put over the top without checking that the matrices are reset - thus a different issue.

  • Andrew_StaceyAndrew_Stacey
    Posts: 2,132

    Just tried this with the latest beta and this example now works (modulo the "Made with Codea" message). However, the problem still shows in my original code. I'll have another go at paring it down, but I may have to just send you the entire code.

  • SimeonSimeon
    Posts: 3,477

    Thanks for the code sample, Andrew. I think you might be right in that this is a matrix bug. I will look at your smaller sample first to see if I can re-create it. It shouldn't have changed much between beta releases.

  • Andrew_StaceyAndrew_Stacey
    Posts: 2,132

    I've just emailed you the Big Code.