Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
4. August 2018


Romain Guy, a developer on the Android graphics team, just released Filament, an open source Apache 2.0 licensed PBR based renderer for Android, Linux, MacOS and Windows.  Filament was designed to be as small as possible and with optimal performance on Android.


The renderer currently possesses the following features:

APIs
  • Native C++ API for Android, Linux, macOS and Windows
  • Java/JNI API for Android, Linux, macOS and Windows
Backends
  • OpenGL 4.1+ for Linux, macOS and Windows
  • OpenGL ES 3.0+ for Android
  • Vulkan 1.0 for Android, Linux, macOS (with MoltenVk) and Windows
Rendering
  • Clustered forward renderer
  • Cook-Torrance microfacet specular BRDF
  • Lambertian diffuse BRDF
  • HDR/linear lighting
  • Metallic workflow
  • Clear coat
  • Anisotropic lighting
  • Approximated translucent (subsurface) materials (direct and indirect lighting)
  • Cloth shading
  • Normal mapping & ambient occlusion mapping
  • Image-based lighting
  • Physically-based camera (shutter speed, sensitivity and aperture)
  • Physical light units
  • Point light, spot light and directional light
  • ACES-like tone-mapping
  • Temporal dithering
  • FXAA or MSAA
  • Dynamic resolution (on Android)

The Filament renderer is currently used in the Sceneform ARCore augmented reality framework.  Filament is exceedingly well documented and is a great read for anyone working on a renderer, even if you have little interest in using Filament in your own project.  The Github page contains documentation on getting started and the source contains several examples on how to use Filament.

GameDev News


2. August 2018


Think Silicon just released GLOVE (GL Over Vulkan … yeah, I don’t get how they make that work either) an open source middleware component that makes it so you can run OpenGL ES on Vulkan.  Available for Android, Linux and Windows, it seamlessly translates OpenGL called to Vulkan at runtime.  The code is available on GitHub under the LGPL v3 open source license.

Details of how GLOVE works from the Github page:

GLOVE functionality

GLOVE (GL Over Vulkan) is a software library that acts as an intermediate layer between an OpenGL application and Vulkan.

GLOVE is focused towards embedded systems and is comprised of OpenGL ES and EGL implementations, which translate at runtime all OpenGL ES / EGL calls & ESSL shaders to Vulkan commands & SPIR-V shader respectively and finally relays them to the underlying Vulkan driver.

GLOVE has been designed towards facilitating developers to easily build and integrate new features, allowing at the same time its further extension, portability and interoperability. Currently, GLOVE supports OpenGL ES 2.0 and EGL 1.4 on a Linux platform, but the modular design can be easily extended to encompass implementations of other client APIs as well.

GLOVE is considered as a work-in-progress and is open-sourced under the LGPL v3 license through which it is provided as free software with unlimited use for educational and research purposes.

Future planned extensions of GLOVE include the support for OpenGL ES 3.x and OpenGL applications.

Keep in mind this is a pretty early release and has only been tested on a small subset of hardware with mixed results.  You can find a great deal more technical information on how GLOVE works and how to extend it in this document.  Keep in mind, this is a fairly new technology and only has been tested on a small subset of devices.  You can read more about this release here.

GameDev News


28. June 2018


SketchFab is one of my favorite online model resources, a resource that I recently featured in the Free 3D Models Resources guide a few days back.  Earlier this year SketchFab launched a beta online store where users can buy and sell 3D models using the excellent SketchFab infrastructure.  Today, that store is out of beta and officially released.  Until July 4th SketchFab is offering a 10% off discount with the code SKETCHFAB10.

The Sketchfab Store combines our powerful browser-based 3D player and Model Inspector to let buyers scrutinize every aspect of a model including textures and topology in real-time. And with VR and AR support out of the box providing immersive ways to review models before purchase, our store take the guesswork out of purchasing 3D files online, an industry first.

But we haven’t stopped there. During the past six months we’ve solicited feedback from buyers and sellers and regularly added new features in response to your recommendations. We developed a new model page layout for store models that’s better optimized to sell content and surface the information that’s relevant to buyers. We’ve also made some adjustments to our search system to highlight relevant results in the Sketchfab Store while continuing to support our vibrant existing community of creators.

If you are interested in becoming a seller on SketchFab, be sure to check out their sellers guide available here.  If you are a game developer, SketchFab has excellent integration into a variety of game engines including Godot, Unity and Unreal.  The also have an open API making integration into your own engine or site a breeze.

Art


21. June 2018

LunarG have just released an updated version of their Vulkan  SDK to be compatible with Vulkan 1.1.77.  If you are interested in learning more about LunarG and exactly how it related to Vulkan, be sure to check out this video, which is also embedded below.


Details of the release:

SDK released 6/20/2018

Overview of changes and additions to Vulkan SDK 1.1.77

  1. Linux SDK is now packaged as a tar.gz file instead of a .run file. Previously the run file created a VulkanSDK directory and then expanded the SDK into the VulkanSDK/1.1.xx.y directory. The tar file now simply expands the SDK into a directory of the form 1.1.xx.y.
  2. Many bug fixes, increased validation coverage and accuracy improvements, and feature additions
  3. New extensions for this SDK release:

VK_KHR_get_display_properties2

VK_KHR_draw_indirect_count

More Information

Please read the Release Notes for Linux, Release Notes for Windows, or Release Notes for macOS for additional information or go to LunarXchange to download this new SDK.


GameDev News


13. June 2018


With Apple’s recent unfortunate decision to deprecate OpenGL support in iOS and Mac OS moving forward this will be the end to the only graphics API that worked natively across all platforms.  I think many developers would be willing to ignore the Mac OS market, but the iOS market is just too big for most people to ignore.  What then are theImage result for opengl logo alternatives to using OpenGL?  In this article we are going to look at exactly that topic.


Use a game engine and let them worry about it!

This is the category probably the majority of developers are going to fall under.  If you use an engine like Unity or Unreal this entire thing becomes a non-issue.  These engines generally already support a number of different rendering options, including native Metal support.  For other small or open source engines such as Godot, CopperCube, Shiva, Cocos, etc this is a bigger problem as they now potentially have to dedicate more time, money and/or resources to support yet another renderer… or drop support for Apple platforms completely.  Unless they rely on some kind of abstraction layer for rendering, life just got a bit more annoying for every single game engine manufacturer that previously supported Apple platforms.

The following engines have Metal support out of the box:

  • Unreal Engine
  • Unity
  • Lumberyard
  • Armory(via Kha)
  • Stingray (now defunct)


Use Vulkan + MoltenVK

A lot of game developers and engine developers specifically were planning to, or already have, implemented Vulkan rendering support.  Vulkan is a lower level alternative to OpenGL, from Khronos Group, the same people behind OpenGL.  Like Direct3D 12 and even Apple’s Metal, Vulkan is designed in a closer to the hardware manner, to better maximize new graphical functionality in modern GPUs.  Working in Vulkan takes a lot more effort than working in OpenGL or similar higher level APIs, but it is cross platform much the same way as OpenGL was.   The catch…  it doesn’t work on Apple products.   Ugh.  Ok, how then is this a solution?  We there is a product called MoltenVK that enables Vulkan to run on Apple’s Metal.  


Use an Abstraction Layer

Another option I’m really partial too… letting someone else do all the work!  There are a handful of low level cross platform graphics APIs that take care of the work for you.  So if you don’t want to use an existing game engine, but also don’t want to deal with rendering intricacies for each platform, this could be a great option.  Well will discuss available cross platform layers.


bgfx

A cross platform “bring your own engine/framework” graphics rendering layer with bindings for several programming languages an renderers, including Metal ( and OpenGL, Direct3D, WebGL and more).  No Vulkan support however, at least not yet.


kha/kore

Kore is the open source C framework that kha is built on top of.  Kore supports a ton of renderers including metal.  You can learn more about kha in this video.


ogre

Ogre straddles the line between game engine and framework.  Either way, ogre3d has a metal renderer for iOS and MacOS.


The Forge

This one is fairly new to me, it’s a cross platform rendering framework that also supports Metal.


Veldrid

Veldrid is a .NET based rendering and computer library that supports Metal (as well as VUlkan, D3D11 and OpenGL, GL ES).  I have no personal experience with this library and it seems somewhat young from a developmental perspective.


SDL… maybe?

There are mutiple mentions and forks of SDL for supporting Metal.  I’m not sure if any are complete or still supported.


Implement A Metal Renderer

Of course you’ve always got the option of buckling down and implementing a Metal renderer for MacOS and iOS platforms.  Of course your work will only be useful on Mac/iOS platforms.  If you are interested in learning more about Metal you can learn more here.


Stick with OpenGL

Of course you’ve always got the option of just sticking with OpenGL.  Deprecated doesn’t mean it wont run on existing devices, just future ones.  Publish your game as it is now and let Apple deal with the fallout of their bad business decisions.


Programming


See More Tutorials on DevGa.me!

Month List

Popular Comments