Ok I'm not sure how much details I can really give, but I'm having a crazy weird problem. I'm using the GLPaint code in my app from Apple, and the PaintingView.m code is the same exact code from Apple-nothing else. Yesterday, everything was working fine and the brush image for the paint was a circular particle that came with the GLPaint, and it was working fine.
Now, out of nowhere, the particle is just a square, and a square particle means that the GLPaint app can't find my particle-meaning if I just put any file name into here: brushImage = [UIImage imageNamed:#"Particle.png"].CGImage; I'll get a square particle.
So this is something wrong. However, I just have no idea why. I tried replacing the Particle.png image over again and placing it in different places in my Xcode project but that didn't work. I know it's a long shot, but does anyone have ANY possible ideas as to why this could happen?
If you have replaced Particle.png with an image that is not square, and the sides are not a power of two, then it will not work. For instance, the particle image can be 32x32, or 64x64, but not 110x110.
As for debugging, I would suggest putting a breakpoint at the line after brushImage = [UIImage imageNamed...], and check the value of brushImage. If you are not comfortable using the debugger, just throw NSLog(#"%p", brushImage) right under that line. If the image is nil, or 0x0, then you know that the image file cannot be found or decoded. If it is not, then the problem is in the code, not the setup.
Well I figured out the problem and I'll post the solution just in case anyone ever has an issue like this. Turns out I had a duplicate painting view in IB that for some reason maybe confused the painting view class. All I had to do was delete one of the views, then everything worked fine again.
Related
I imported a PNG of all of the textures I want to use in a mobile game and when I went into the sprite editor, I noticed that the edges of the sprites were "fading" into the transparent background - and the transparency changes throughout this "fade". Autodesk Sketchbook does something similar when I open the image in it, but GIMP, MS Paint, and Windows Photos don't. I was going to put pictures of what I'm talking about here, but Stack Overflow says I'm not allowed to yet. How can I fix the problem? Is there a setting in Unity that I can change so it doesn't add the "fade" or do I have to change the file format and import it again?
EDIT: I have created an Imgur album with pictures of my problem. Basically, Unity is blending the colors of the sprites and it's blending the alpha too. Also, I made the textures bigger at one point and that improved the problem, but didn't fix it completely. Here are the pictures: https://imgur.com/a/6HGm3fy
EDIT #2: First off, someone commented trying to explain what I was seeing in my imgur pictures and I asked how to fix the problem he was describing without realizing that you can't properly reply to comments, so I'm asking again, how can I fix it? Second, I just tried messing with anti-aliasing in the quality settings of my project and got this error: "Setting anti-aliasing of already created render texture is not supported!" I didn't think I had any render textures - just regular textures - but when I double-clicked the error, an unnamed render texture with an illegal size (55x110 pixels) showed up in my inspector. Changing its settings doesn't seem to do anything, but in the inspector, it still looks like it was changed. What am I seeing?
I have a problem in Swift with UITableViewCell background image. Let's say that it shows quite fine one iPhone5 but on iPhone 6Plus it is stretch and thus it looks bad. This is probably due to Aspect fill or something which I really couldn't manage to change and achieve what I want so would be the best if someone could poke sample code I am providing as well as image how it should look, so anyone can check it out and maybe give me some hint or tip or sample code or even fixed demo version.
So here it is:
Note that on left side there is a curve (like half a circle) around right side of icon. On bigger phones or tablet, that curve gets super stretch thus completely destroying the look.
Demo code link
Thanks all in advance for any help. I am pretty stuck with this one.
You can stretch an image while preserving the aspect ratio of a portion of that image using slicing. Xcode offers a graphical interface for doing this. The idea is that you decide what parts of the image are allowed to stretch and which aren't.
https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/chapters/SlicinganImage.html
I recently came across a problem I can't solve which involves not being able to draw my sprites properly. I have tried a lot of different things and couldn't find any solution.
Here is how the image should look like in unity:
And here is how it actually looks like:
If someone could tell me how to fix this, I would be very grateful.
Presumably the top image is a screenshot of your image manipulation program, many of which use the chequerboard pattern to mean transparency. As such, the image you have exported is a gradient going from almost solid white at the bottom to transparent at the top. This is why the image appears as such in Unity.
Also, if you're wondering why the image appears as though it has bands of different colours, this is due to a problem called colour banding. This can be fixed by using a technique called Dither (which adds some noise to the image), but how you do so will depend on which image manipulation program you are using.
I'm a beginner to 3D graphics in general and I'm trying to make a 3D game for the iPhone, and more specifically, to use textures that contain transparency. I am able to load a texture (an 8 bit .png file) into OpenGL and map it to a square (made from a triangle strip) but the transparent parts of the image are not transparent when I run the app in the simulator - they take on the background colour, whatever it is set to, but obscure images that are further away. I am unable to post a screenshot as I am a new user, so my apologies for that. I will try to upload and link it some other way.
Even more annoying is that when I load the image into Apple's GLSprite example code, it works exactly as I want it to. I have copied the code from GLSprite's setupView into my project and it still doesn't work properly.
I am using the blend function:
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
I was under the impression that this is correct for what I want to do.
Is there something very basic I am missing here? Any help would be much appreciated as I am submitting this as a coursework project in a few weeks and would very much like it to work.
Let me break this down:
First of all your transparent object is drawn.
At this point two things happen:
The pixels are drawn correctly to the back buffer
The depth buffer pixels are set in the depth buffer. Note that the depth buffer will write values all across your object, and transparency does not affect it.
You then draw other objects behind the transparent object.
But any of these objects pixels will not be drawn, because their depth buffer value are less than those already drawn.
The solution to this problem is to draw your scene back-to-front (draw starting at the further away things).
Hope that helps.
Edit: I'm assuming you are using the depth buffer here. If this isn't correct I'll consider writing another answer.
So I am using Xcode 3.2.1 and am trying to make an iPhone OpenGL ES1 project. The default template for an opengl project is ok, but I have been trying to split the code up so not everything is done per frame on the drawView() call.
I have a seperate setupRC method that sets the lighting, turns on depth test, turns on culling and sets the clear color. This is called on the init of the EAGLView and this works just fine.
I have took the glViewport() and glFrustrum() calls and put them at the end of the resizeFromLayer() method in the ES1Renderer.m file. This gets hit when the app starts and when the app gets resized as it should.
Now the problem is the frustrum's far seems to be messed up, as in all my objects get cut / clipped off. I tried adjusting the camera position and angle and it still all objects are cut / clipped. I increased the far from 1000.0f to 30000.0f and still get the same result. What is crazy is that if i call both the glViewport() and glFrustrum() calls in the drawView() every frame everything looks right. Nothing is clipped and looks like i want it. From everything I've been reading the frustrum and viewport calls only need to be called when the window / gets made and resizes, but If I don't call it every frame in my project it doesn't work. Any ideas?
Thanks In Advance
I wonder if you might be doing some extra translating somewhere before you start drawing? Maybe you could make sure you do a loadIdentity() before you start drawing everything just to make sure you're starting from where you think you are.
In trying to get this frustum/viewport situation worked out in XCode's OpenGL iphone template myself, one resource that was helpful in getting to the bottom of it was:
http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html