What’s the word on a render texture implementation for the iPhone? There are so many effects that require this sort of functionality.
render textures (FBO) do not exist on the iphone.
Thats a shader hardware only thing.
The iphone would offer pbuffer which up to a given point are similar. They thought also have differences which must not be forgotten as they have different direct and indirect requirements and restrictions compared to FBOs
Eh? What about copying directly from the back buffer? Forget about render to texture directly, what about simple buffer access?
Would end on a similar level as pbuffer and in neither case you can’t do it with unity until the support is implemented.
The only way you have is going the payback way: do all your stuff in pure calculations, draw it onto the texture and only have this one texture actually.
8 year old GPU’s allowed access to the backbuffer and in turn you could copy this to the texture buffer. There’s got to be a way to do this on the iPhone GPU in real time, heck even if it was at some fraction of real time it would be better than nothing. The original Playstation had render to texture effects and I know the iPhone GPU is more powerful than that.
The iphone has pbuffers which are up to a given point similar to FBOs and part of what you are used to from render targets.
If you want to use it yourself right now thought, you will have to write an iPhone technology in XCode on your own. Unity does not use pbuffer on either platform, only FBOs at the time.
I hope that they add it to Unity iPhone at some point. As the iphone has no other render texture there wouldn’t be any problems with “mixed scenarios”
This is incorrect. OpenGL’s FBOs do not require shaders in any way. The iPhone’s drivers do not expose FBO (IIRC), but it could have pbuffers. Which give the same functionality.
This is incorrect again. Unity on OpenGL uses pbuffers when FBOs are not available (or too buggy to be sanely used).
That said, currently render textures are not exposed in Unity iPhone. What do you need them for?
I am aware that FBO do not require shaders but they are commonly only present on shader hardware, so I formulated it the “simple way”
As for the pbuffer support: I didn’t know that they became supported in the recent updates.
The last time I took part in a render texture related topic on such a technical level, something along the line of “pbuffers are not supported” with a few reasons why was mentioned by a unity employee.
That was around 10 months ago.
Did that behavior change with Unity 2.1 or was the information offered back then incorrect / to vaguely held so it was missunderstood?
Anyway, thank you for clarifying that.
Is there somewhere a list what is supported through which hardware meanings and what not?
Like hardware instancing and similar.
By Unity or by iPhone? In Unity pbuffers were there for ages, well before FBO support was implemented (back in the day, Apple did not have FBOs on OS X). Note that this is about OpenGL, which is not related to iPhone (which is OpenGL ES).
I don’t remember the details or who replied there. Could have been that back then Apple’s iPhone drivers were not supporting pbuffers yet. Or could have meant that “we haven’t implemented pbuffer support yet in Unity” (which is still true today).
The topic was related to Unity on the desktop when I remember correctly.
iPhone was not even publically available then with the 2.0 OS and the information on Unity iPhone were rare to inexistant.
But if pbuffer support is already present for such a long time, I either missunderstood the answer I guess or the answer really targeted at something else than the regular Unity for the desktop. Actually of lower priority as this topic is for iPhone.
Thank you for the detail information. They definitely help to get a better understanding on some of the behaviors and why some are less performant than others althought they seem to do the same thing.
Aras, I PM’d you about this.
I’ve spoken to some of the people on the oolong list about render-to-texture, and they are using it today. As far as I have been able to find out RTT is supported by OpenGL ES on the iPhone.
Render Textures commonly refer to FBO, which do not exist on the iphone.
The iphone thought has pbuffer (as mentioned above) which offer part of the stuff as well. Those thought are not supported in the current Unity iPhone version, as mentioned as well above.
it would be nice if unity iphone would expose the texture rendering support of the device, even if it is in a very limited or specialized way unique to unity iphone.
Limited/specialized RT for Unity iPhone has been discussed internally… when or if it gets implemented is probably not going to be disclosed. Either way it will of course be a Unity iPhone Advanced feature if it becomes a feature.
The iPhone does support GL_OES_framebuffer_object, in fact you’re even required to use it.
Xmas is correct. They work, and are reasonably fast (depending on what you’re doing with it, of course).
Oh?
OK in that case it naturally would make quite a bit of sense if it was integrated into the next version already.
I thought it was more a pbuffer like level on which it run, at least that were the indications I found when I researched on that before I decided that investing into an engine technology would save me enough time to justify the investment.
Seems like I need to dive deeper into that again now with the gathered experience of a year