Skip to content

Instantly share code, notes, and snippets.

@lhog
lhog / map_grass
Last active April 15, 2021 23:13
function widget:GetInfo()
return {
name = "Map Grass GL4",
version = "v0.001",
desc = "Instanced rendering of garbagegrass",
author = "Beherith",
date = "2021.04.12",
license = "CC-BY-NC-ND 4.0",
layer = -1000000000000,
function widget:GetInfo()
return {
name = "Map Edge Extension",
version = "v0.7",
desc = "Draws a mirrored map next to the edges of the real map",
author = "ivand",
date = "2020",
license = "GPL",
layer = 0,
function APTGETSOURCE {
pkg=$1
cd $(mktemp -d)
apt source $pkg && apt-get build-dep -y $pkg
tmp_dir=$(pwd)
for d in $(find ./ -maxdepth 1 -not -path "./" -type d); do
cd $d
break
done
}
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function widget:GetInfo()
return {
name = "Deferred rendering2",
version = 3,
desc = "Collects and renders point, cone and beam lights",
author = "ivand",
date = "2020",
function widget:GetInfo()
return {
name = "skin",
desc = "skin",
author = "ivand",
license = "GNU GPL, v2 or later",
layer = 0,
enabled = true -- loaded by default?
}
end
-- Spring OpenGL abstraction layer (GLAL). Abstracts away the difference between maintenance and develop engines
-- Author: ivand/LHoG
local isDevelop = (gl.CreateVertexArray ~= nil)
if isDevelop then
-----------------------------------------------------------------
-- Develop
-----------------------------------------------------------------
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <memory>
#include <iostream>
#include <cassert>
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow *window);
@lhog
lhog / formats.txt
Created February 27, 2019 05:42 — forked from Kos/formats.txt
OpenGL image formats along with their unsized variants and preferred formats for pixel transfer (Written by hand, needs verification) Pixel store for compressed textures not provided because there are glCompressedTexImage and family for them. EXT_texture_compression_s3tc formats not included.
| Image format (sized) | Unsized | Compr | Pixel format | Pixel type |
|---------------------------------------|--------------------|-------|--------------------|-----------------------------------|
| GL_R8 | GL_RED | False | GL_RED | GL_UNSIGNED_BYTE |
| GL_R8_SNORM | GL_RED | False | GL_RED | GL_BYTE |
| GL_R16 | GL_RED | False | GL_RED | GL_UNSIGNED_SHORT |
| GL_R16_SNORM | GL_RED | False | GL_RED | GL_SHORT |
| GL_R32F | GL_RED | False | GL_RED | GL_FLOAT |
| GL_R8I | GL_RED | False | GL_RED_INTEGER | GL_INT |
//https://www.shadertoy.com/view/MslyRr
///////////////////////////////////////////////////////////////////////////////
mat4 RotationMatrix(vec3 axis, float angle)
{
axis = normalize(axis);
float s = sin(angle);
float c = cos(angle);
float oc = 1.0 - c;
return mat4(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s, 0.0,
@lhog
lhog / SpherePoints_GoldenAngle
Created February 10, 2019 22:34
SpherePoints_GoldenAngle
vec3 SpherePoints_GoldenAngle(float i, float numSamples) {
const float goldenAngle = PI * (3.0 - sqrt(5.0));
float theta = i * goldenAngle;
float z = (1.0 - 1.0/numSamples) * (1.0 - 2.0 * i / (numSamples - 1.0));
float radius = sqrt(1.0 - z * z);
return vec3(radius * cos(theta), radius * sin(theta), z);
}