A Metal re-implementation of GLKit's GLKBaseEffect

Related tags

Image MBEBaseEffect
Overview

MBEBaseEffect: Antique Fixed-Function Features for Modern Apps

When GLKit was introduced with iOS 5 (2011), it included the GLKBaseEffect class to allow developers to easily configure lights, materials, fog, and other effects in OpenGL and OpenGL ES. Shaders were a relatively new feature on the platform (having debuted alongside OpenGL ES 2 in iPhone OS 3 in 2009), and many graphics programmers were not yet up-to-speed on shader programming. GLKBaseEffect was a bridge that eased the transition away from fixed-function OpenGL by providing a fixed-function style interface to shaders that implemented portions of the OpenGL ES 1.1 graphics pipeline.

When MetalKit debuted in 2015, it included no such feature. The world had moved well beyond the fixed-function paradigm and fully into the brave new shader-driven world. Developers were now responsible for implementing their own shaders, a task made only more onerous by the rising demand for physically-based rendering.

The MBEBaseEffect class in this repository emulates the fixed-function features of GLKBaseEffect atop Metal. Whether such a thing even makes sense depends, in part, on how rose-tinted one's nostalgia glasses are. In any event, it's not meant to be taken too seriously. It makes a lot of assumptions, it's quaintly non-physically based, and it's unlikely to be of use in many apps.

Instead, this project is a love letter to the fixed-function pipelines of yore. Simplistic and quaint as they seem now, they were instrumental in bringing a lot of graphics developers into the fold. And if the simplicity of this project is instrumental in illuminating the art of shader programming for any newcomers, that's more than I could ask for.

Screenshot

You might also like...
An example app showing how to use AVCaptureSession with Metal in Swift.
An example app showing how to use AVCaptureSession with Metal in Swift.

#iOSSwiftMetalCamera Click here to see video demo. This app is a basic example showing how to use Swift to setup an AVCaptureSession session to access

VRTracerSample - Learning project in Metal Ray Tracing and Swift
VRTracerSample - Learning project in Metal Ray Tracing and Swift

VRTracer This is a personal project for learning Metal's Ray Tracing API with sw

Visualiser written in Swift, SwiftUI and Metal API
Visualiser written in Swift, SwiftUI and Metal API

ModularMTL About Visualisation of modular multiplication on a circle. Written in Swift using Metal API and SwiftUI. Images Features Keyboard controls

Extract Metal functions from .metallib files.
Extract Metal functions from .metallib files.

Metal Library Archive MetalLibraryArchive is a product of reverse-engineering Apple's metallib file format. You can use MetalLibraryArchive to get the

Playing with Core Image and Metal Shader Language for fun.
Playing with Core Image and Metal Shader Language for fun.

Playing with Core Image and Metal Shader Language for fun.

new home for the non-Metal framework shims!

Moraea non-Metal Frameworks The core of the non-Metal patches: wrappers for downgraded frameworks, consisting of a mixture of autogenerated stubs and

A Metal application that mimics SAO
A Metal application that mimics SAO "Link Start" scene.

SAO Link Start Effect This is a Metal application that mimics SAO "Link Start" scene. Building The project requires Xcode 13.3 or later version. The a

A Swift implementation of fastimage. Supports PNG, GIF, and JPEG.
A Swift implementation of fastimage. Supports PNG, GIF, and JPEG.

ImageScout ImageScout is a Swift implementation of fastimage. It allows you to find the size and type of a remote image by downloading as little as po

A beautiful and flexible text field control implementation of
A beautiful and flexible text field control implementation of "Float Label Pattern". Written in Swift.

SkyFloatingLabelTextField SkyFloatingLabelTextField is a beautiful, flexible and customizable implementation of the space saving "Float Label Pattern"

Owner
null
📷 A composable image editor using Core Image and Metal.

Brightroom - Composable image editor - building your own UI Classic Image Editor PhotosCrop Face detection Masking component ?? v2.0.0-alpha now open!

Muukii 2.8k Jan 3, 2023
GPUImage 3 is a BSD-licensed Swift framework for GPU-accelerated video and image processing using Metal.

GPUImage 3 Janie Clayton http://redqueengraphics.com @RedQueenCoder Brad Larson http://www.sunsetlakesoftware.com @bradlarson contact@sunsetlakesoftwa

Brad Larson 2.4k Jan 3, 2023
📷 A composable image editor using Core Image and Metal.

Brightroom - Composable image editor - building your own UI Classic Image Editor PhotosCrop Face detection Masking component ?? v2.0.0-alpha now open!

Muukii 2.8k Jan 2, 2023
A python library to run metal compute kernels on MacOS 12

metalcompute for Python A python library to run metal compute kernels on MacOS Usage Example execution from M1-based Mac running MacOS 12.0: > ./build

Andrew Baldwin 21 Nov 7, 2022
GPU-based media processing library using Metal written in Swift

GPU-based media processing library using Metal written in Swift. Overview MetalAcc is a GPU-Based media processing library that lets you apply GPU-acc

Jiawei Wang 259 Dec 17, 2022
A GPU accelerated image and video processing framework built on Metal.

MetalPetal An image processing framework based on Metal. Design Overview Goals Core Components MTIContext MTIImage MTIFilter MTIKernel Optimizations C

null 1.5k Jan 4, 2023
A simple mesh viewer for MacOS based on Swift and Metal and using Assimp for loading meshes

Metal Mesh Viewer A simple triangle mesh viewer for MacOS This application is a simple (triangle) mesh viewer that should be capable of rendering even

J. Andreas Bærentzen 0 Dec 13, 2021
Boids written in the Metal Shader language + Swift

MetalBoid Boids written in the Metal Shader language + Swift This is an example of a Boid simulating running in iOS using Swift+Metal. The parameters

Mark Dawson 10 Nov 8, 2022
1D, 2D, and 3D variations of Fast Fourier Transforms for a Metal S4TF backend

MetalFFT MetalFFT is an experiment in adding GPU acceleration for 1D, 2D, and 3D variations of Fast Fourier Transforms. This framework's original purp

Philip Turner 21 Oct 11, 2022
1D, 2D, and 3D variations of Fast Fourier Transforms for a Metal S4TF backend

MetalFFT MetalFFT is an experiment in adding GPU acceleration for 1D, 2D, and 3D variations of Fast Fourier Transforms. This framework's original purp

Philip Turner 21 Oct 11, 2022