RENDER ZONE

http://www.ontmoeting.nl/renderzone/

homepage

3 Op deze pagina:
Apple met eigen API's.
 
pagina 1
pagina 2

Apple pag. 3


Apple ondersteunende software

Apple trok zich in augustus 2015 officieel terug van verdere medewerking en steun aan de OpenGL, (OpenGL ES) en OpenCL open platform API's. Tijdens WWDC 2015 werd de aankondiging gedaan dat Metal ook voor OSX zal worden gebruikt. Voor OSX v. 10.11 en iOS 9.0 is Metal geupdate per 9-9-2015.

Daarvoor in de plaats moet Metal komen, een ontwikkeling van Apple zelf voor het iOS mobiele platform (start introductie iOS versie 8), maar nu ook officieel toegevoegd aan de desktop en MaccBook lijnen (vanaf 2012 modellen en nieuwere, met OSX El Capitan).

Op de mobiele platforms was daar Vulkan van de Khronos Group als open API. Microsoft heeft z'n eigen Direct3D 12 voor Windows.

Metal is een op C++ gebaseerde programmeer taal, die het de ontwikkelaars mogelijk maakt om programma's te maken die sneller dan voorheen op het scherm kunnen worden getoond. En voor het uitvoeren van berekeningen die normaal in de CPU werden uitgevoerd, maar nu naar de veel snellere GPU worden doorgeschoven. De uit te voeren berekeningen moeten dan wel geschikt zijn voor parallelel verwerking. De Shading taal is op C++ gebaseerd, waardoor de opstap voor programmeurs makkelijker wordt gemaakt.

De speerpunten van Metal zijn:

• Lage overhead interface

•  Geheugen en bron management

•  Geïntegreerde ondersteuning voor zowel grafische renderingen als snelle algemene berekeningen met Precompiled Shaders. Dat is nieuw, de Shaders kunnen samen met de APP code worden gecompileerd en dan voor het werken worden geladen.

In de toekomst met gebruik van Metal is het niet meer nodig om afzonderlijke API's en Shader talen te gebruiken. Metal vervangt deze in keer. Waarbij OpenGL ES nog wel wordt benut.

De manier waarop die overgang in gang werd gezet, verdiend geen schoonheidsprijs. Apple was nota bene de eerste die OpenCL op de kaart had gezet. Daarna zagen ze in dat API's voor iedereen moesten gelden en werd het ondergebracht bij de Khronos Group als Open project crossplatform. Waardoor alle computer gebruikers met alle platformen er gebruik van konden maken. Ook bij de ontwikkeling van Unity voor Games (Apple Worldwide Developers Conference 2005) werd in eerste instantie alleen OSX ondersteund. Inmiddels is dat een cross-platform free Game engine geworden die door Unity Technologies wordt ondersteund om video games voor allerlei apparaten en websites te ontwikkelen. Inmiddels heeft de marketing (eind 2015) vat gekregen op Metal en wordt bij de product informatie het breed uitgemeten hoe veel beter het is.

De laatste jaren was de spirit bij Apple eruit om OpenGL en OpenCL nog verder te blijven ondersteunen. Iets wat bij Microsoft natuurlijk al decenia speelt. Open standaarden moeten daar zo snel als mogelijk worden vervangen (en soms ook verbeterd) door eigen Windows gerelateerde (Microsoft) API's en programmeer talen. Bij Microsoft was de laatste ontwikkeling na JavaScript en Java en nog vele andere talen en scripten, die van de API DirectX. In het begin succesvol, daarna ingedut. Zelfs zo erg, dat de grafische kaarten fabrikant AMD het noodzakelijk vond om met een eigen Mantle API te komen. De verkoop en het voortbestaan van de grafische kaarten kwam in de knel door de knullige manier waarop DirectX werd aangepast.

Mantle bleek in vele opzichten sneller dan DirectX 11 te werken. Bij Microsoft werden ze ineens wakker geschud. AMD had naar de programmeurs geluisterd en precies die verbeteringen aangebracht die nodig waren.

Microsoft werd min of meer gedwongen om het team van DirectX ontwikkelaars uit te breiden en DirectX versie 12 werd uitgebracht. Waarin alle probleem gebieden, die eerder door AMD waren aangekaart, glad werden gestreken.

DirectX 12 is nu voor het eerst weer een goede API, waar veel software programmeurs dankbaar gebruik van kunnen maken.

AMD zag en overwon niet, ze maakten vervolgens Mantle tot OpenSource project. Tegen Microsoft ingaan met DirectX 12 is ondoenlijk.

Metal moet zowel OpenGL als OpenCL voor mobiele toepassingen maar ook voor desktop gebruik gaan vervangen. Waarbij een snelheidswinst moet worden geboekt voor zowel de CPU als de GPU. De mogelijkheden voor het gebruik van GPGPU programma's wordt daarmee verbeterd met de introductie van computer Shaders. Het gebruik van textures wordt veel universeler gemaakt. Ook de synchronisatie tussen GPU en CPU is verbeterd, samen met het gemeenschappelijke gebruik van geheugen tussen deze twee.

Daarmee zien we een opvallende verschuiving. Een aantal taken die normaal door de CPU werden uitgerekend worden hiermede naar de GPU geschoven. Deze rekent vele malen sneller. Waardoor de totale snelheidswinst van Metal ten opzichte van OpenGL en OpenCL eigenlijk voor een deel neerkomt op een slimme manier van schuiven met de beschikbare hardware (rekenkracht).

Die omschakeling tussen OpenGL en OpenCL naar Metal heeft Apple niet zelf in de hand. Veel programma's die onder Apple draaien werken er mee. Langzamerhand gedurende een aantal jaren zal dat plaats moeten vinden. Waarbij de programmeurs worden gelokt met:

Metal provides the lowest-overhead access to the GPU, enabling you to maximize the graphics and compute potential of your apps on iOS and OS X. With a streamlined API, precompiled shaders, and support for efficient multi-threading, Metal can take your game or app to the next level of performance and capability.

Start pagina voor Apple programmeurs voor Metal

https://developer.apple.com/metal/

Daar staat: "de eerste document omschrijving voor een API die nog in ontwikkeling is." De voor de programmeurs geboden informatie kan in de toekomst veranderen. Geen prettig vooruitzicht voor programmeurs om software te ontwikkelen. Hetgeen trouwens toch ook bij die groep ook op weerstand stuit, bestaande Apple programma's zijn ontwikkeld MET OpenGL en OpenCL. Nu zou dat weer compleet anders moeten worden, waarbij direct wordt aangegeven dat er nog geen standaard door Apple is voorgesteld.

 

Lijst met OpenGL Extensions bij Apple
http://www.ontmoeting.nl/renderzone/16-openGL.html

 

Apple en Open GL
http://www.ontmoeting.nl/renderzone/16-openGL.html

 

OpenGL for OSX
http://www.ontmoeting.nl/renderzone/16-openGL.html


De gang van zaken bij het maken van een Library file met commando regel hulpmiddelen.

 

Het gebruik van de commando regel hulpmiddelen om een complete Library op te bouwen.

In de afbeelding is te zien hoe het compiler blokdiagram voor Metal's Shader bron code werkt. Indien u (tegen de programmeur) .metal files in uw programma stopt. Dan zal Xcode de gereedschappen bieden om een bibliotheek file te maken die door uw programma na het opstarten kan worden gebruikt.

Het kan ook zonder Xcode worden gecompileerd.

1.

Daarbij wordt elke .metal file in een enkele .air file omgezet, die een tussentijdse opzet van de Shader taal code bevat.

2.

Met Metal-ar om meerdere .air files samen te voegen in één enkele .metalar file. Deze Metal-ar file is gelijk aan de Unix Utility ar.

3.

Gebruik Metallib om een Metal .metallib biblitheek file te maken vanuit het archief .metalar file.

Om uiteindelijk in het programma de totale bibliotheek in framwork code te benaderen wordt de

newLibraryWithFile:error: method of MTLDevice gebruikt.

Bestaande Shaders die in Cg/HLSL zijn ontwikkeld worden door Metal in de achtergrond omgezet in GLSL voor OpenGL ES. En vor Metal worden deze op vergelijkbare manier geconverteerd.

Het gevolg is dat er bij GAMES maar ook bij render- en 3D programma's meer complexe beelden op het scherm in kortere tijd kunnen worden weergegeven. Ook het opgenomen vermogen (reken capaciteit), is met Metal afgenomen, belangrijk voor mobiel gebruik.

Voorlopige gegevens op iOS platform

Voor de eerste (Family 1, v1 Limit iOS GPU) gelden o.m. de volgende cijfers
max. aantal texture lagen per 1D of 2D texture array 2048
Gelijk aan die voor 3D textures
Max. 3D texture breedte, hoogte en diepte 2048 pixels
Max. buffer lengte 256 MB
Max 1 D texture breedte 4096 pixels
Max. 2D texture breedte en hoogte 4096 pixels

Unreal4 op iPad of iPhone, maar ook op Androïd. Met "one Engine, one Workflow".

Renderkracht nog niet eerder vertoond op een mobiel apparaat

TwinMotion en Lumion gebruikers opgelet!

Maar vooral de ontwikkelaars van dergelijke professionele animatie programma's voor architecten opgelet, de markt verandert in sneltreinvaart.

Juni 2014

iOS 8 Metal demonstratie door EPIC Games door tim Sweeney.

https://www.youtube.com/watch?v=NRoGwuSDh3E


Dit is de toekomst die in de vorm van een rendering op de iPad en iPhone al in 2014 al werd gedemonstreerd. Een iPad die in staat is om life 3D renderingen uit te voeren.

Zeer benieuwd naar een update van Metal in combinatie met de nieuwe iPad Pro!

We komen daarbij ook weer uit bij de fantastische Unreal 4 Engine, die tot 20x zo snel zou moeten werken met Metal. Dat betekent niet dat de getoonde life renderingen overeen zouden komen met de kwaliteits eisen die er aan 'architectuur' renderingen moeten worden gesteld. Maar het geeft wel aan wat nu al met een beperkte rekenkracht in de iPad en iPhone mogelijk is.

Unreal is het interactieve programma om Games te maken, door Epic Games ontwikkeld. Het maakt gebruik van een eigen scripttaal (UnrealScript) en is gratis voor iedereen om te gebruiken. Commerciële gebruikers betalen een fee achteraf, indien ze een game op de markt brengen.

link Unreal 4 games programma

http://www.ontmoeting.nl/renderzone/

De film met de vlieger door het landschap, die ook door Epic Games werd gemaakt.

Wat is Free Unreal?

https://www.unrealengine.com/what-is-unreal-engine-4



* afb space volgt nog

Valkyrie door CCP Games met Unreal4 Engine.


 

Slot van Apple deel 3

Apple deel 1

Apple deel 2

homepage

omhoog