What's a good approach studying opengl es 2.0? - iphone

I've been messing around with some coding and finally think I'm finally ready for the OpenGL part, then I thought again and decided that I need some guidance with how to learn/ remember OpenGL ES 2.0!
Alright, basically, I know how it works in the high level, then when I begin to type out some code....
I see a bunch of parameters,
I refer to some documents,
I fill in those parameters,
I see some more parameters,
I refer to more documents,
(loop)
MVC comes in,
I get completely and utterly confused!
Brain crashes.
I'm trying to do some simple stuff on the iPhone, I'd like to find the train of thoughts of the gurus, like some sort of check list, or order to do things, so that what I'm doing will always be clear!
Eg, something like:
Arrays of numbers always come before shaders
(some sets of program lines that always appear in a certain order)
Right now, I have a high level understanding of something like this:
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1%3a-The-Graphics-Pipeline.html
What I wish I could know is what are the usual steps involve, if you were to expand all these high level understanding like tags in a website!
I tried reading some tutorials, and I'll be trying again after typing this, to attempt to absorb the common steps/ order to do this, if anyone can help speed up the process, I'll be veeeeeery very grateful! Am I asking too much? =p

I highly recommend this tutorial book for GL on the iPhone
It's particularly useful for fairly experienced developers who are starting with GL. If you are starting at a more beginner level, it may be confusing in parts.

Related

I want to make a small co-op 3D RPG. Where do I begin?

I know how to program although I haven't done much in C# yet. But I understand every code snippet I read. I mostly script at my job. I have little to no experience in graphical design or animations.
The only thing I have done so far in Unity 3D is the ball rolling tutorial.
I have some questions though as I have a hard time understanding where I should begin. I know co-op 3D RPG is a project with a HUGE scope, but this is what I would like to accomplish to begin with:
Mini world (half the size of a WoW zone)
Populate world with terrain, trees and some buildings. Maybe a cave.
Have a playable character that can move around and interact with some objects.
Could anyone guide me into the right direction? What documentation should I read? Are there any RPG packs or plugins that can help me achieve this? Any nice tutorials you know of?
If 3D is too complicated to start with, I'm also willing to try an isometric game.
PS: Are there any free (or reasonably priced) HD asset packs that include animations? Or will I have to provide those myself as well?
Co-Op RPG's are quite large; Infact most people have tools that would help this speed up production; Although you're asking where to start. Most of my programming knowledge comes from theory and pretty basic knowledge; But I have an idea on where you should start!
A big factor on Co-Op is well.... Of-course CO-OP so something you should play around with first is data and how it's stored but even though you have knowledge of this factor Unity has a good way of storing it from Host to Client!
https://docs.unity3d.com/Manual/UNetStateSync.html?_ga=2.98238303.1333003911.1509902124-1740889112.1506544791
Another factor of -Co-Op is the dynamic spawning that is going to be pretty heavy although their are quite a few ways of doing this I'm sure their are plenty of correct as-well as incorrect ways of doing it!
Personally I would develop a database and call-Events with SQLite though this would be a heavy and complex job to do correctly and efficiently
but unity3d has UNetCustomSpawning documentation that seems to work pretty well for it's inteded use although it takes some heavy tinkering to get right so I would suggest once you get synchronization done you should check out some Spawning
https://docs.unity3d.com/Manual/UNetCustomSpawning.html
With Every Co-Op Action it must be handled and heres how!
https://docs.unity3d.com/Manual/UNetActions.html
How about the actual connection?
https://docs.unity3d.com/Manual/UNetDiscovery.html
Although reading alot of this may help; I would suggest rading through this and giving it a shot.
https://docs.unity3d.com/Manual/UNetSetup.html
and if you find no help or it's doing you some trouble
https://unity3d.com/learn/tutorials/s/tanks-tutorial
You may hear about "Tanks", alot though I personally am quite stubborn so I couldn't bear to look into it untill I did just earlier this month; It shows a correct way of doing things from Shooting, to spawning, and may other things.
I am un-certain this is a good or bad answer for you as this I believe is quite a personal question but as their are about a thousand and a thousand more ways of doing this I think what I have shown is a great way of starting just to get an idea of how the ball should start rolling!
-Thanks!

Drawing on the iPhone

Hello kind computing people,
Okay this is super broad, but I thought I'd give it a shot.
I've made an iPhone app using the Speak Here example project. The app works great, but now I want to use the equalizer bar independent of the actual audio input (i.e. to make it into a 'Loading Bar'). The thing is the Audio argument used to feed data into the graphics code seems to be quite intermeshed with the structure of how the graphics are created. I've been hacking around for quite a while, but I can't help feel like a cat chasing it's tail
Any advice on how to approach this? Anybody have any experience doing this?
I'll take any help I can get, including questions that may help me narrow down what I need to do.
EDIT 1
In particular I want to do some animations while there is NO input to the mic or output to the speaker i.e. when the argument to lvl_meter is NIL.
Both LevelMeter and GLLevelMeter look to be pretty reusable -- neither one has any ivars that's specifically audio-related.
That said, the code is from 2008-2009, so it may not reflect the best way to do things now. Also, it looks like it should be pretty easy to roll your own level meter. Have you tried that, and if so, what didn't work?

iPhone UIImage number recognition

I have a small UIImage (jpg) with a single typed number. I want to be able to read the number with some kind of pattern recognition. I'm really not sure where to start, so any help would be appreciated.
my initial idea was to compare this image with other images. For instance compare the image with that of a 1,2,3, etc until a match was found. That just seems slow and cumbersome and wondered if there was a better way to do it?
Thanks
Update - I'm trying to convert sudoku puzzles from newspaper print to interactive puzzles
No, you are right, it will be slow and cumbersome. But on the plus side you don't have to write it yourself
http://sourceforge.net/projects/opencvlibrary/
Still not exactly easy tho, and i'm not sure about licensing, so… you don't mention why you need to do this (sounds a little odd).
Maybe you can avoid it? If you know the images are numerical digits 0-9, is there another way to track which one a particalur images is, apart from the way it's pixels are arranged?
Sorry if that sounds like i'm missing the point… Maybe you could fill in a few more details?
I read this really good write-up about this exact problem here: http://sudokugrab.blogspot.com/2009/07/how-does-it-all-work.html
It doesn't have any code samples, but explains the concepts, and might be able to point you in the right direction.
The following tutorial may be right down your alley:
http://blog.damiles.com/2008/11/basic-ocr-in-opencv/
It is a simple tutorial on doing number recognition and comes with the source code also.
Additionally, you may want to do a search on OCR SDK (Optical Character Recognition Software Development Kit). You will surely find a stack of them. Commercial ones a pricey though.
I would go for a "role your own" approach along the line of the OpenCV tutorial, especially since you are only interested in numbers.
All of the best ':-)

What content have you made/seen made using procedural techniques

I was looking at some study i have to do in the future to do with procedural generation techniques and i was wondering what type of content you have:
Developed
Helped Develop
Seen implemented
Tried to develop
and what methods/techniques/procedures you used to develop it.
If you feel generous maybe you can even go into specifics of it such as data structures ad algorithms you have used to develop it.
If this needs to be put as community wiki because it is not me asking for a problem to be solved just let me know.
This is not a homework thread because it is a research unit that i'm not taking yet ;)
Introversion software, the makers of the games Defcon, Uplink and Darwinia (among others) have started working on a game about a year ago which extensively uses PCG for city generation, here is a video of their work, and you can read more about it on the development diary of the game (start from the first part at the bottom of the page!).
This immediately got me extremely interested, and seeing the potential for games I immediately started researching the technology. I have amassed a folder of 18 PDFs about the subject (research papers, SIGGRAPH presentations, etc). Here, I uploaded it for you.
The main approach is to use L-Systems, however, I never got around to understanding enough of that to make something out of this. I tried other, less successful approaches like using Voronois, recursively splitting a rectangular area into more smaller areas and shifting the boundaries a little to obtain a bit of randomness and polygon division.
The last method I had gotten from Mike's Code Blog's posts (here and here). The screenshots shown on his blog make me drool, it is my biggest programmer's dream to ever get something that looks like that. I emailed him to ask how he did it, and here is the relevant part of his reply, I'm sure he wouldn't mind me posting this here:
L-Systems is definitely one way to go, but that isn't what I'm doing. The basis of my method is polygon subdivision. I start with a simple polygon that represents the entire area of the city. Then, I split it (roughly) in half, and then split those two polygons, etc. until I get down to city-block size. At that point, the edges of all my polygons represent roads. I then use the same subdivision method to break the blocks down into building-size lots.
The devil is in the details, of course, but that is the basic method.
I for one still haven't managed to fully implement a solution of which I'm satisfied of, but it remains one of, if not my single biggest programmer's dream to ever achieve something like this.
Here are a few of the leaders in procedurally generated terrain (and to a lesser extent foliage). If you don't get a detailed answer here regarding methods and techniques, you might want to look in / ask in their forums. I have seen some discussions of techniques there.
TerraGen 2
World Builder
World Machine
Natural Graphics
Noone mentioned the demoscene that ONLY use procedural stuff?
So, go search for Werkkzeug, Kkrieger, MilkyTracker to start. Also you can visit the site pouet and see the wonder of well done procedural videos (yes, procedural videoclips! With music and graphics, all procedural!)
Allegorithmic's products are used in actual shipping titles. These guys focus on texture generation (both offline and at runtime).
They have some very pretty screenshots and demos.

Beginner guide to OpenGLES on iPhone

Does anyone know a good beginners guide to using OpenGLES on the iPhone? I have found some but they all require assumed knowledge which I don't have.
Simon Maurice has some great tutorials on the very first steps. Take a look: http://www.cocoachina.com/wiki/index.php?title=Category%3aSimon_Maurice_iPhone_OpenGL_ES. Do them from the beginning and you'll have a good sense of the basics.
EDIT:
Backup link
Source code
You need only one reference:
http://www.khronos.org/opengles/sdk/1.1/docs/man/
Yeah, some of the documentation doesn't make a lot of sense the first time you read it, but really, read the sentence/paragraph/page again, and again. It really does make sense, and it's very accurate. Which is something you really can't say from tutorials. Tutorials are almost always written by people that don't seem too fussed about leaving out important details while documentation like that is usually written by very nitpicky people that cram every little important fact into (possibly overly-complex) sentences.
Oh, and one golden tip: Add a search function to your browser that does this:
http://www.google.com/search?q=%s+site%3Awww.khronos.org%2Fopengles%2Fsdk%2F1.1%2Fdocs%2Fman%2F&btnI
(replace %s by whatever your browser's search term replacement string is, the above example is for Opera)
I've bound it to the o prefix, so whenever I need to look something up on OpenGL/ES, I just type o glDrawElements in the address bar and instantly get the documentation page on it.
Once again, if I may plug my own work, I have a short writeup on what I learned while writing Molecules for the iPhone. I came into this having no experience with the 3-D side of OpenGL (I had done a little 2-D hardware acceleration before), so I have a bit of a different perspective on the subject. The source code to Molecules is available, so you might be able to learn something from poking around inside it. I also have written a post on how to use Core Animation structures and functions to accelerate OpenGL ES rendering, if you want something a little more technical.
Bill Dudney has a post here about how he started getting into OpenGL ES, and then a follow-on here where he provides code for a Wavefront OBJ loader for the iPhone.
I believe that I've seen a few more good resources around Stack Overflow in various answers, so you might search around and see what else you can find here.
For OpenGL NeHe is a great tutorial. Though, it doesn't specifically cover OpenGLES, it should still be pretty helpful. Just be prepared to run into things now and again that won't work on the iphone.
Also you can get v1.1 if "The Red Book" online.
Simon Maurice's tutorial can be found here
"The Red Book" is not recommended to OpenGL/OpenGLES beginner. It is book for professionals.
The first step is should try to run downloaded simple programs or simple codes from OpenGL web sites.
Here's a good (non-Chinese) link to Simon Maurice's tutorials:
http://web.me.com/smaurice/iPhone_OpenGL_ES_Blog/iPhone_OpenGL/Archive.html
His tutorials are excellent; they're what I used to learn OpenGL ES.
In addition to "The Red Book", another useful book -with tutorials and reference- is OpenGL SuperBible.
Again not OpenGLES specific, but I believe it is useful to learn OpenGL features in general, then filter out the ones you don't need.