Getting started with Metal [closed] - ios

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I'm an Objective-C / Swift software developer (in training) currently with an application in the App Store. But I have recently really been interested in Metal, Apple's new alternative to OpenGL. But I'm not exactly sure how to begin... Apple's documentation is handy, but only if you really know what you are doing in the first place. Are there any good tips to beginning? I really haven't explored the area of 3D game programming so would you recommend I learn another language first? And if so which?
I'm just looking for good tutorial books or sites that get in depth with the how and why. I like to understand what exactly I'm doing instead of just typing in code, but there are so many languages and beginner's books that I really don't know where to start... Can anyone help me with this?

Metal is a newer graphics API. So if you are new to graphics and 3D game programming you may want to start with OpenGL- specifically since there are many textbooks out there that teaches you fundamentals of graphics using OpenGL. As for a web page on OpenGL, one of my favorite ones is songho. Books on OpenGL ES2.0 and OpenGL ES3.0 includes sections on programming with OpenGLES for iOS.
If you would specifically like to explore Metal API itself, there are multiple videos from WWDC 2014 that details on the basics and has demos on how to do work with Metal in Xcode. An introductory article that details on what and why with respect to Metal is the objc.io one. And a more detailed one is metalbyexample.
To understand in depth as to how these graphics APIs work, you might need a grasp on GPU architecture. The Real-Time Rendering is probably the best book on the subject. These lecture videos from Prof. John Owens at UC Davis also describes the architecture in a clear and concise manner.

I would definitely recommend Marius Horga's blog as a starting point. It is how I started and Marius is always willing to help.
Another place to go is metalbyexample.com by Warren Moore and of course his book. However, it has a significant amount of code written in Objective-C, but it is fairly easy to translate to Swift.
Download the sample code from Apple at: https://developer.apple.com/metal/
Recently I created a GitHub repo how to translate Shadertoy shader code into Metal, which you can access it in here.
[Important Note] - Some of the sample code given is already incompatible with Xcode 8 and Swift 3 and you will need to work out the changes needed to prevent the compiler from choking on them. If you need three great code samples by Apple showing how to use textures, multithreading at the CPU and GPU level, and how to draw primitives in Metal, being also Xcode 8 beta 6, Swift 3 compatible, just send me an email and I will send them to you.

Related

Is Google Tango the first/only augmented reality SDK to provide targetless tracking? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I'm trying to learn how to build an augmented reality app to place a 3D object into the world without the need for a "target". So far, pretty much every augmented reality framework seems to only work with targets; Vuforia, Wikitude, etc. Some have slight extensions on target tracking, such as Vuforia's "Extended Tracking" and "Smart Terrain" features, but in the end these are afflicted by the same limitation -- the SDKs are hopelessly obsessed with "targets".
Then I came across Google Tango. It's hard to tell exactly, but it appears to be the only option I could find which offers placing 3D objects into the real world and allowing the user to walk around with the 3D objects staying in place (relative to the world).
Am I correct in my assumption that Google Tango is the only option for this? If I'm going to spend $512 on a Tango development kit, I want to first make sure there weren't other augmented reality libraries I could have used for this.
Kudan provides markerless tracking, via SLAM. They have a free trial version and no hardware necessary.
Markerles tracking is not new. 13th Lab's PointCloud SDK prodided markerless tracking a few years ago. But it removed that offering when their implementation was licensed exclusively by a 3rd party.
The SLAM algorithm is neither new nor proprietary. Anyone can implement it from the CalTech academic paper, though it's a graduate-level problem to tackle!
Check out http://easyar.com markerless tracking and other cool features. And it is free and opensource
Wikitude also have a markerless tech. I have not tried it to tell how good it works.
Vuforia had something called Smart Terrain which was more of an interaction with environment. But the tech is quite old and I am not sure they kept it going in the last couple of years.
Actually, none can really claim to have a working markerless, it is more of a working in certain conditions. You need proper hardware fast enough to process all the calculations and limited usage conditions as no fast movement and ideal environment.
Microsoft is also coming up with Hololens but hardware is at $3000 and only for dev at the moment.

Good resource/book for learning Objective-C [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I have have been trying to learn Objective-C for a little bit now. I was wondering if anyone knows of good online references guides/courses related to the topic that are good know of any good books related to this topic.
Thank you.
Three great free references for learning objective-C are:
http://www.raywenderlich.com/ -- Ray Wenderlich provides high quality tutorials for many topics ranging from basic to advances objective-c programming.
http://nshipster.com/ -- NSHipster is a journal of the overlooked bits in Objective-C, Swift, and Cocoa. Updated weekly.
http://littlebitesofcocoa.com/ -- Similar to NSHipster, utilizing short, sweet, and to the point articles for IOS and OSX development.
What I used to begin learning Objective-C and IOS development are the books:
Big Nerd Ranch Guide - Objective-C Programming https://www.bignerdranch.com/we-write/objective-c-programming/
Big Nerd Ranch Guide - IOS Programming
https://www.bignerdranch.com/we-write/ios-programming/
As programming is always changing, some tutorials and methods are going to be a small bit outdated using updated versions of Xcode. If you are using a book, I would recommend downloading the version of Xcode to whatever is being used in the book.
If something is not working properly, look up errors on google or post questions on stackoverflow -- solving errors are what help you learn!
Hope this helps!

Learning to code on iOS - swift vs Objective C dilemna [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I have just finished a year of university and learnt how to write nice applications with C++, OpenGL and Qt.
I was just about to start learning Objective C and Cocoa. This seemed optimal to develop iOS & Mac apps since Objective C was, like C++, a variant of C, Cocoa would allow me to make nice UIs and I could continue using my good OpenGL knowledge to do 3d graphics.
However, Apple has recently announced that many things are changing. Most importantly, they have announced that there is a new language called "Swift", and that they are replacing (from what I understand) OpenGL with "Metal"
My question is, taking into account the lack of good books/comprehensive tutorials (I had found a great one for Objective C and Cocoa).
At this stage, should I wait for the release of XCode6 and iOS8 in fall, along with what I hope will be new books and tutorials on learning this new language and do something else in the meantime to avoid learning a defunct language, or should I learn Objective C anyway and then learn Swift when it comes out (and all these new things like Metal etc).
Is it worth deepening my OpenGL understanding in light of all this new stuff being announced?
I would advise learning Swift. It is proving to be popular, and there are some tutorials out already, such as this one (http://ios-blog.co.uk/tutorials/developing-ios-apps-using-swift-part-1/). Learning Objective-C will probably only be useful for a couple months, as Apple will probably push Swift as the main language. You can also get a good tutorial book by Apple on the iBooks store for free. Also, if you are a registered developer, you can get Xcode 6 and ios 8 now.

What good Open GL abstractions in objective-c are there? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I have been looking around for a while now, trying to find some easier 3D framework for iOS. Cocos3D looks cool to work with in iOS, but I seems quite beta(?) and the documentation provided seems not enough to understand how to work with it.
So I have been searching the web for similar libs without any luck, even for something close to a tutorial. Does anyone know an easy library for creating some basic 3D demos?
I would like to create a demo simulating flying over some simple terrain/ground and somehow be using GL for this. Any directions are appreciated.
cocos3d is actively developed and supported, and is currently being used in dozens of apps and games. It now supports the iOS, OSX and Android platforms.
cocos3d 2.0 is recommended for new development. It is stable, actively supported, and is nearing its first formal release as a packaged distribution, which is planned for end Dec 2013/early Jan, 2014.
As for documentation, I agree that it is woefully deficient. We will be introducing a new website and Wiki around the time of the formal 2.0 release, which should help to remedy this moving forward.
Right now, your best bet for learning cocos3d is to review the implementation of the CC3DemoMashUp demo app, which demos almost all of the major features of cocos3d.
Relevant to your specific demo idea, the CC3DemoMashUp demo includes a dragon flying over a scene. The dragon also demonstrates blending between animation tracks.

People Tracking Library [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Can anyone direct me to a free people tracking library? I would like to be able to use an input image (or video) and get the position of people in it. I have looked at the Reading People Tracker but cannot compile it! I am on Linux (Ubuntu) but windows would be okay (if anyone can tell me how, this would be great). Preferably, it would be for C/C++ but java, c#, ruby and python would be okay too. Thanks in advance, ell.
Not specifically a people tracking library, but as a general tracking approach "Predator" is very highly regarded: http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html - Authors site includes some very impressive demonstration of results on youtube
This article fully explains an algorithm used for tracking moving people, and the accompanying source code is here; it is pure Java. You can see it in action in this video.
(Disclaimer: I'm the author; but I do think this is very useful, and have successfully used the algorithm a lot myself.)
The algorithm tracks moving objects in general, finds their bounding rectangle (which the application draws), counts the number of pixels in each objects, and consistently assigns them the same integer ID throughout the video frames.
When it comes to commercial computer vision applications, OpenCV and the Point Cloud Library aka PCL are your best friends (C++, but there are Java and C# bindings). And articles like the one linked explains how to use tools like OpenCV to accomplish full stack motion tracking. (The pure Java implementation shows how it works down to the individual pixels.)

Resources