Skip to content

Instantly share code, notes, and snippets.

half3 fromRGBM(half4 c) {
#ifdef MARMO_LINEAR
//RGB is pulled to linear space by sRGB sampling, alpha must be in linear space also before use
//BUG?? Shouldn't this be toLinearFast1(c.a)*51.5
return c.rgb * toLinearFast1(c.a);
#else
//leave RGB*A in gamma space, gamma correction is disabled
return c.rgb * c.a;
#endif
}
@ikrima
ikrima / gist:5568c60d812a2a593c71
Created May 16, 2015 10:07
Alembic Tangent Calculation
//Split Normals & UVs
//NOTE: ikrimae: THIS HAS TO HAPPEN AFTER UVS, NORMALS, POSITIONS ELSE HAS BEEN COMPUTED
//TODO: ikrimae: this is horrible; clean up into something not convoluted
{
//For easy debugging
struct SplitVertex {
UINT32 vertIdx;
UINT32 vertFaceIdx;
V3f pos;
// Spherical Gaussian Power Function float pow(float x, float n)
{
n = n * 1.4427f + 1.4427f; // 1.4427f --> 1/ln(2)
return exp2(x * n - n);
}
@ikrima
ikrima / gist:4192751
Created December 3, 2012 04:44
Xcode randomly breaks
#0 0x0004a2c4 in OGLWindow::DrawVideoFrame() at /Users/ikrima/src/Mythly/Experiments/MarkerFreeAR/MarkerFreeAR/MiniPTAM/OGLWindow.cpp:65
#1 0x00019980 in -[MSViewController glkView:drawInRect:] at /Users/ikrima/src/Mythly/Experiments/MarkerFreeAR/MarkerFreeAR/MSViewController.mm:351
#2 0x33d7c132 in -[GLKView _display:] ()
#3 0x33d7d24a in -[GLKViewController _updateAndDraw] ()
#4 0x37aeb7d2 in -[NSObject performSelector:] ()
#5 0x32fcf86e in CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long) ()
#6 0x32fcf7c4 in CA::Display::IOMFBDisplayLink::callback(__IOMobileFramebuffer*, unsigned long long, unsigned long long, unsigned long long, void*) ()
#7 0x35818000 in IOMobileFramebufferVsyncNotifyFunc ()
#8 0x34dc860c in IODispatchCalloutFromCFMessage ()
#9 0x37b55f12 in __CFMachPortPerform ()
@ikrima
ikrima / PlayLevel.cpp
Last active December 12, 2015 15:55
Keep Editor window alive during VR Preview
if (bUseVRPreviewForPlayWorld && GEngine->HMDDevice.IsValid())
{
GEngine->HMDDevice->EnableStereo(true);
// minimize the root window to provide max performance for the preview.
TSharedPtr<SWindow> RootWindow = FGlobalTabmanager::Get()->GetRootWindow();
if (RootWindow.IsValid())
{
//////////////////////////////
//TODO: ikrimae: Pipe disabling this based on a config variable. So far hasn't crashed the editor but need stability testing & also it's a perf hit
//Color balls with spherical falloff
//Lerp between start to end colors
float distToSphere = distance(inPixelWpos, inSphereCenterWpos);
float alpha = saturate(distToSphere / sphereRadius);
float3 outColor = lerp(StartColor, EndColor, alpha);
//Determine falloff power to sphere radius
float falloff = saturate(falloffScale * (alpha - 0.5) + 0.5 - falloffBias);
@ikrima
ikrima / USF-SyntaxHighlighting.reg
Created March 14, 2017 04:46
Enable VS2015 syntax highlighting for .usf files
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\Languages\File Extensions\.usf]
"HLSLFile"=dword:00000001
@="{B2F072B0-ABC1-11D0-9D62-00C04FD9DFD9}"
@ikrima
ikrima / generate_python_intellisense.py
Created May 1, 2018 06:08
generate_python_intellisense.py
def gen_intellisense_stubs():
import pystubgen
import inspect
# This only traverses objects defined in the module
source = pystubgen.make_source(ue)
# Need to manually get freeform functions in module
functions_list = [o[1] for o in inspect.getmembers(ue) if inspect.isroutine(o[1])]
funcDefs = '\n'.join([pystubgen.make_source(funcObj) for funcObj in functions_list])
Optane Drive
Full Build:
4>Deploying UE4Editor Win64 Development...
4>Total build time: 723.65 seconds (Parallel executor: 671.36 seconds)
========== Build: 4 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
No-Change Build optane: 4.89 seconds
4>Deploying UE4Editor Win64 Development...
4>Total build time: 105.59 seconds (Parallel executor: 53.23 seconds)
@ikrima
ikrima / turbo_colormap.c
Created August 25, 2019 10:29 — forked from mikhailov-work/turbo_colormap.c
Turbo Colormap Look-up Table
// Copyright 2019 Google LLC.
// SPDX-License-Identifier: Apache-2.0
// Author: Anton Mikhailov
// The look-up tables contains 256 entries. Each entry is a an sRGB triplet.
float turbo_srgb_floats[256][3] = {{0.18995,0.07176,0.23217},{0.19483,0.08339,0.26149},{0.19956,0.09498,0.29024},{0.20415,0.10652,0.31844},{0.20860,0.11802,0.34607},{0.21291,0.12947,0.37314},{0.21708,0.14087,0.39964},{0.22111,0.15223,0.42558},{0.22500,0.16354,0.45096},{0.22875,0.17481,0.47578},{0.23236,0.18603,0.50004},{0.23582,0.19720,0.52373},{0.23915,0.20833,0.54686},{0.24234,0.21941,0.56942},{0.24539,0.23044,0.59142},{0.24830,0.24143,0.61286},{0.25107,0.25237,0.63374},{0.25369,0.26327,0.65406},{0.25618,0.27412,0.67381},{0.25853,0.28492,0.69300},{0.26074,0.29568,0.71162},{0.26280,0.30639,0.72968},{0.26473,0.31706,0.74718},{0.26652,0.32768,0.76412},{0.26816,0.33825,0.78050},{0.26967,0.34878,0.79631},{0.27103,0.35926,0.81156},{0.27226,0.36970,0.82624},{0.27334,0.38008,0.84037},{0.27429,0.39043,0.85393},{0.27509,0.40072,0.86692},{0.2757