- 2011 - A trip through the Graphics Pipeline 2011
- 2013 - Performance Optimization Guidelines and the GPU Architecture behind them
- 2015 - Life of a triangle - NVIDIA's logical pipeline
- 2015 - Render Hell 2.0
- 2016 - How bad are small triangles on GPU and why?
- 2017 - GPU Performance for Game Artists
- 2019 - Understanding the anatomy of GPUs using Pokémon
I've been deceiving you all. I had you believe that Svelte was a UI framework — unlike React and Vue etc, because it shifts work out of the client and into the compiler, but a framework nonetheless.
But that's not exactly accurate. In my defense, I didn't realise it myself until very recently. But with Svelte 3 around the corner, it's time to come clean about what Svelte really is.
Svelte is a language.
Specifically, Svelte is an attempt to answer a question that many people have asked, and a few have answered: what would it look like if we had a language for describing reactive user interfaces?
A few projects that have answered this question:
| /* | |
| The MIT License (MIT) | |
| Copyright (c) 2018 Eric Arnebäck | |
| Permission is hereby granted, free of charge, to any person obtaining a copy | |
| of this software and associated documentation files (the "Software"), to deal | |
| in the Software without restriction, including without limitation the rights | |
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| copies of the Software, and to permit persons to whom the Software is |
| document.body.addEventListener('click', async e => { | |
| if(e.srcElement && e.srcElement.classList.contains('irc_mi')) { | |
| const downloadBtn = document.createElement( 'a' ); | |
| downloadBtn.setAttribute( 'target', '_blank' ); | |
| downloadBtn.setAttribute( 'href', e.srcElement.src ); | |
| downloadBtn.click(); | |
| e.preventDefault(); |
| using UnityEngine; | |
| public static class Colors | |
| { | |
| public static readonly Color AbsoluteZero = new Color32( 0, 72, 186, 255 ); | |
| public static readonly Color Acajou = new Color32( 76, 47, 39, 255 ); | |
| public static readonly Color AcidGreen = new Color32( 176, 191, 26, 255 ); | |
| public static readonly Color Aero = new Color32( 124, 185, 232, 255 ); | |
| public static readonly Color AeroBlue = new Color32( 201, 255, 229, 255 ); | |
| public static readonly Color AfricanViolet = new Color32( 178, 132, 190, 255 ); |
| analytic | |
| # glTF 2.0 PBR Materials | |
| # metallic-roughness | |
| # Reference: | |
| # glTF Specification, 2.0 | |
| # https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#metallic-roughness-material | |
| # glTF 2.0: PBR Materials by Saurabh Bhatia. May 2017 | |
| # https://www.khronos.org/assets/uploads/developers/library/2017-gtc/glTF-2.0-and-PBR-GTC_May17.pdf | |
| # glTF-WebGL-PBR |
| // NOTE DONT put in an editor folder | |
| using UnityEngine; | |
| public class StatsBarAttribute : PropertyAttribute | |
| { | |
| public string valueMax; | |
| public StatsBarColor color; | |
| public StatsBarAttribute(string valueMax = null, StatsBarColor color = StatsBarColor.Red) |
| /** | |
| * Author: David Asmuth | |
| * Contact: [email protected] | |
| * License: Public domain | |
| * | |
| * Converts the .fbx model | |
| * from Blender orientation system (Z is up, Y is forward) | |
| * to the Unity3D orientation system (Y is up, Z is forward) | |
| */ | |
| using System.IO; |
There is not a lot of doc or posts about making an headless renderer with webgl support. Here are few of my findings
I tried things on Heroku, but I was not able to make anything work.
Next, I tried EC2 t2.micro, only to find out that OpenGL needs a graphic card to execute (sure, there are things like mesa that I didn't tried, but it looked like I needed to build Chrome and I didn't want to go that way).
The only easy solution that I found was AWS EC2 GPU Instances. They are pretty much overpriced for what I'm trying to acheive, but it worked. You need to use an AMI that support the Nvidia GRID thing. eg https://aws.amazon.com/marketplace/pp/B00FYCDDTE and its CentOS.
Slimer need Firefox and Firefox need shared libraries that we need to install (we will use a custom repo).