Skip to content

Instantly share code, notes, and snippets.

@MMcM
MMcM / 00-readme.md
Last active December 1, 2025 03:01
HDS Concept AVT-APL+ Keyboard

HDS Concept AVT-APL+ Keyboard

A Keytronics foam and foil keyboard for an APL capable terminal from 1984.

Protocol

The keyboard just sends idle low, 9600 baud ASCII, with special codes for function keys. It is therefore rather impractical to have it implement a USB keyboard.

@Erfan-Ahmadi
Erfan-Ahmadi / rendering_engine.md
Last active January 15, 2026 07:55
Rendering Engine Development

1. What does the Rendering Engine Need?

  • Rendering Engine
    • Support for Multiple Graphics APIs : OpenGL | Vulkan | DirectX12 | DirectX11 | Metal
    • Content Export Pipeline : Create Maya/Max Plugins to export meshes based on Renderers needs. (Assimp Commercial Licence -> Pay)
    • Texture Compression Libraries
    • Material System : Artists Configure shaders, textures, parameters to import in game
    • Game-side Manager of Models/Materials/Lights
    • Good Visibility System (Frustum/Occlusion) (VisibilityBuffers?)
    • Multi-Threded Submission System to reduce cost of submission to GPU
  • Lighting/Shadow Rendering System
float D_GGX_Anisotropic(float at, float ab, float ToH, float BoH, float NoH) {
// Burley 2012, "Physically-Based Shading at Disney"
float a2 = at * ab;
vec3 d = vec3(ab * ToH, at * BoH, a2 * NoH);
return saturateMediump(a2 * sq(a2 / dot(d, d)) * (1.0 / PI));
}
float V_SmithGGXCorrelated_Anisotropic(float at, float ab, float ToV, float BoV,
float ToL, float BoL, float NoV, float NoL) {
// Heitz 2014, "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs"
@romainguy
romainguy / d_ggx.glsl
Last active December 18, 2025 16:38
D_GGX in mediump/half float
// From https://github.com/google/filament
float D_GGX(float linearRoughness, float NoH, const vec3 h) {
// Walter et al. 2007, "Microfacet Models for Refraction through Rough Surfaces"
// In mediump, there are two problems computing 1.0 - NoH^2
// 1) 1.0 - NoH^2 suffers floating point cancellation when NoH^2 is close to 1 (highlights)
// 2) NoH doesn't have enough precision around 1.0
// Both problem can be fixed by computing 1-NoH^2 in highp and providing NoH in highp as well
// However, we can do better using Lagrange's identity:
@Leandros
Leandros / links.md
Last active April 16, 2026 20:42
Writing a Modern Rendering Engine
./API,SDK & Consoles
Architecture.pdf
Beginning_Cpp_Through_Game_Programming.pdf
Game Engine and Game Design
Game coding complete 4th edition.pdf
./Others
a-whirlwind-tour-of-python.pdf
./AI:
Coppied from here: http://apple2.info/wiki/index.php?title=Pinouts#Apple_.2F.2Fe_Motherboard_keyboard_connector
J16 (Numeric Pad) J17 (Keyboard)
11 X5 X6 26 25 Y7
10 X6 SHFT* 24 23 Y6
9 X4 Y9 22 21 X4
8 X7 X3 20 19 X5
7 n/c X1 18 17 X7
6 Y5 X2 16 15 RESET*
5 Y2 XO 14 13 GND