Goals: Add links that are reasonable and good explanations of how stuff works. No hype and no vendor content if possible. Practical first-hand accounts of models in prod eagerly sought.
![Screenshot 2023-12-18 at 10 40 27 PM](https://private-user-images.githubusercontent.com/3837836/291468646-4c30ad72-76ee-4939-a5fb-16b570d38cf2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA0MTMzMjIsIm5iZiI6MTcyMDQxMzAyMiwicGF0aCI6Ii8zODM3ODM2LzI5MTQ2ODY0Ni00YzMwYWQ3Mi03NmVlLTQ5MzktYTVmYi0xNmI1NzBkMzhjZjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcwOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MDhUMDQzMDIyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDk5ZjM2YTdiODVhZTQzOTJkNWMxY2I1ZjY3OTAzMGUzOGY5OWIxOTczZmI2YzRjNDc2YjJiOTUyYzczZmM4NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.Q2rB-cE_2K7SFpYkhOMTGWlGfPehhbaK4g345E1707Q)
shader_type canvas_item; | |
uniform sampler2D spritesheet; // Should be a slice image as exported from Magica Voxel | |
uniform int slice_count = 1; // The number of slices | |
uniform vec2 camera_vec = vec2( 1., 1. ); // Recomend using (1,1) or (1,1.5) | |
uniform float camera_ang = 0.0; // change this to change the view angle of the object | |
const vec2 center = vec2( 0.5 ); | |
bool scale_and_rotate_with_offset( inout vec2 uv, vec2 sxy, float ang, vec2 cent, vec2 offset ) |
shader_type particles; | |
//render_mode disable_velocity,disable_force,keep_data; | |
uniform sampler2D map; | |
uniform float map_mipmap=2.0; | |
uniform vec2 collider_position; | |
uniform float collider_radius; | |
uniform float particle_radius; | |
uniform float sample_range=5.0; | |
uniform float sample_step=1.0; |
import bpy | |
from bpy import context | |
from mathutils import Vector | |
import bmesh | |
up = Vector((0, 0, 1)) # z axis | |
north = Vector((0, 1, 0)) # y axis | |
def stroke(bm, v, n, w): | |
v1 = bm.verts.new(v + w / 2 * n) |
A list of useful commands for the FFmpeg command line tool.
Download FFmpeg: https://www.ffmpeg.org/download.html
Full documentation: https://www.ffmpeg.org/ffmpeg.html
#include "hemicube.h" | |
#define PACK_HEMICUBES 1 | |
static void get_hemicube_face_normal(int index, Vector3 *forward, Vector3 *left, Vector3 *up) { | |
// Unwrapped hemicube with positive-Z in the middle. | |
switch (index) { | |
case 0: *forward = Vector3(+1, 0, 0); *left = Vector3( 0, 1, 0); break; |