Skip to content

Instantly share code, notes, and snippets.

View JSandusky's full-sized avatar

Jonathan Sandusky JSandusky

  • Ohio, United States
View GitHub Profile
@JSandusky
JSandusky / MaterialGraph.xml
Created February 6, 2019 11:28
Material graph node definition XML
<graph name="Material" candebug="false" color="orange">
<!--
<in /> = designates an input socket
<out /> = designates an output socket
<metadata></metadata> = can be attached to sockets or nodes themselves
List of Metadata: [NAME], [valid targets] = [purpose/effect]
@JSandusky
JSandusky / Toon.hlsl
Created February 6, 2019 01:51
HLSL Toon Shader
//==========================================================
// Toon Shader
//==========================================================
// Features:
// - artist supplied *tone* ramp
// - Control map to force shadow/highlight
// - model-space vertical 1px shade control (hat shadows, etc)
// - MSDF *linework* map
// - rimlight glow
// - geometry-shader outlines
@JSandusky
JSandusky / DEGFX.lua
Created January 22, 2019 07:42
DiligentEngine Premake
--[[
Usage:
// setup the paths and build options
DEGFX_InitPaths(...)
DEGFX_InitRenderers(...)
// add the projects to build
DEGFX_IncludeProjects()
@JSandusky
JSandusky / 27_Urho2DPhysics.as
Created December 16, 2018 22:18
Repro for Physics 2d raycast bug
// Urho2D physics sample.
// This sample demonstrates:
// - Creating both static and moving 2D physics objects to a scene
// - Displaying physics debug geometry
#include "Scripts/Utilities/Sample.as"
void Start()
{
// Execute the common startup for samples
@JSandusky
JSandusky / asPEEK.cpp
Last active April 9, 2020 05:26
asPEEK debugger: add `friend class asPEEK` as needed for access to `Script`' and `ScriptFile` internals
/*
Copyright (c) 2012 Muhammed Ikbal Akpaca
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
@JSandusky
JSandusky / Shake.as
Last active November 11, 2018 19:21
Angelscript camera shake
// Shakes an object using a # of shake intervals
// Intended behavior is to shake to random directions once per interval, optionally returning
// to the original reference direction
class Shake : ScriptObject
{
// internal state
private Vector3 referenceDirection;
private Vector3 shakeTowards;
private Vector3 shakeBase;
@JSandusky
JSandusky / Header.h
Created November 9, 2018 23:43
Marching Triangles
class DebugRenderer;
class Context;
class Geometry;
struct MTFront;
void ImplicitTangentSpace(const Vector3& norm, Vector3& tangent, Vector3& binormal);
/// A vertex on the advancing front.
struct MTVertex
{
@JSandusky
JSandusky / Bytes.cpp
Last active November 17, 2018 02:19
Urho3D "Bytes" resource for arbitrary binary files in attributes/etc
#include <Urho3D/Resource/Bytes.h>
#include <Urho3D/Core/Context.h>
namespace Urho3D
{
/// Construct.
Bytes::Bytes(Context* context) : Resource(context)
{
@JSandusky
JSandusky / ParticleEmitter.cpp
Created October 28, 2018 00:56
Particle emission with interpolation
//
// Copyright (c) 2008-2018 the Urho3D project.
//
// 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
// furnished to do so, subject to the following conditions:
//
@JSandusky
JSandusky / BakeNorm.fx
Created October 1, 2018 06:52
Render normal to texture
#if OPENGL
#define SV_POSITION POSITION
#define VS_SHADERMODEL vs_3_0
#define PS_SHADERMODEL ps_3_0
#else
#define VS_SHADERMODEL vs_4_0_level_9_1
#define PS_SHADERMODEL ps_4_0_level_9_1
#endif
matrix WorldViewProjection;