Copy link to clipboard
Copied
Hello,
I am trying to develop apps for a large interactive wall and I seem to be running into the 4096x4096 bitmapData limit. This post: http://stackoverflow.com/questions/8277639/no-more-constrain-on-bitmap-resolution-in-flash-player-11... says that the limit has been removed since Flash version 11 (I'm running Flash 12 and AIR 4.0) however I am seeing display object being cut off at exactly x=4096.
My app is basically this...
I have 30 sprites (each 600x428 and each with an image on front and back) spread evenly across the wall (10 colums and 3 rows). I use Papersprite and Tweener to flip (rotationY) each sprite over once they are touched. Before being touched, they all display perfectly across the wall. When I touch a sprite past x=4096, they dissapear completely, or they are literally cut off/in-half at x=4096. Before x=4096, they flip perfectly. Also, another application I made has many images that are 8000x2500 and they each fade in/out, also using Tweener, to the next with zero issues like this at all.
According to the link above the bitmapData size is dependent on the OS and RAM. The wall is run by very high end computers with the latest graphics cards and stacked RAM.
Can anyone explain what is happening and how I can overcome this issue?
Copy link to clipboard
Copied
Could you please share few more details about "Interactive Wall" - OS, hardware, etc?
Copy link to clipboard
Copied
It is running windows 7 with, I believe, 16GB of ram. I can't remember the graphics card off the top of my head and I am not at work to check. I do know it is the "latest and greatest"
I can get more details on Monday if it helps.
Copy link to clipboard
Copied
Hard to say where to look from the info you are giving us.
A couple questions:
Copy link to clipboard
Copied
I'm running it in GPU and currently I am not using cacheAsBitmap on either. Should I use it on the sprites themselves? If so, does it matter if the back of the sprites contain more, soon to be, interactive sprites?
Basically each of the 30 sprites contains more information about itself on the "back" after flipping them over on touch.
Copy link to clipboard
Copied
CAB would be detrimental to performance on the top container for sure. CAB just creates bitmaps of your sprites and therefore uses up a lot of memory -- that's why I was enquiring if you were using it.
I you are using CAB, I would disable it and see what happens.
My guess is that your GPU memory gets filled-up / corrupted during the compositing step of the second frame. Rendering the first, full frame is fine. Compositing the portions that have changed in the following frames, isn't.
Things to try:
In case you are new to molehill, the best source to get started with Stage3D, imo, besides the AS3 documentation code examples, is this book:
Copy link to clipboard
Copied
Great suggestions, thank you.
Like I said, the weird thing is that any sprite x<4096 will flip perfectly fine and everything x>4096 either disappears or gets cut off right at 4096. Also, using images that are 8000x2500 render just fine, with fade in/out effects with Tweener. It doesn't make much sense to me.
I will try stage.invalidate() but I can see in the PaperSprite class that it is used throughout. I did try removing the use of PaperSprite and it still happened when I use Tweener or TweenLite, so I figured it had something to do with something in the source of either of those.
I don't use mouse events, just touch/gesture events since it is in interactive wall.
I have used both CPU and Direct and the problem is still there.
I thought about converting this app into a Starling app to see if that corrects the issue. Not sure if it would make a difference or not though.
Thank you for the help, I will check into that book as well. I'm always a fan of opening one up to get answers.
Copy link to clipboard
Copied
Something to notice is that when you are swiping through photos in the Photos app the image drops to a lower resolution. Perhaps 4096 is a limit for texture size, and that bigger than that is too much for the hardware? Try changing to a squished 4096x2500 (it will look correct to the user, just slightly softer looking) version of the image just while you do the flip, then switch back to the 8000x2500 version.
Copy link to clipboard
Copied
So I have narrowed down the issue to rotationY past x=4096. I removed all PaperSprite and Tweener references and just created a boolean for isFront. When you tap it, it simply rotates 180 to 0 depending on the boolean. At x>4096, the sprites still cut off or dissapear completely.
Is this a Stage3D limitation? If so, is there a way to fix this or a workaround to make it work properly?
Copy link to clipboard
Copied
If this app runs on the desktop, one workaround might be to have two air applications and putting the windows side by side!
Copy link to clipboard
Copied
You might need to manually set the swf version in the compiler options. I
think you would need 14 or 15 but I can't keep up with which number
corresponds with what release version.
On Fri, Feb 28, 2014 at 2:55 PM, IndiansDeveloper
Copy link to clipboard
Copied
I do have it set already to use the latest version of Flash Player: -swf-version=23 is Flash Player 12.