Skip to content

Instantly share code, notes, and snippets.

@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 ()
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 / UE4 Test Configuration Packaging
Created June 13, 2015 00:30
How to package a Test Configuration in UE4
go to your UE4/Engine/Build/Binaries folder, and run the following:
RunUAT BuildCookRun -project="F:\UE4\MyHotProject\MyHotProject.uproject" -windows-noeditor -cook -stage -pak -package -clientconfig=Test
@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
@ikrima
ikrima / UE4 Animation Subsystem Architecture
Last active November 23, 2023 03:18
Mapping Out The UE4 Animation Architecture Flow
Animation Subsystem
AnimInstance is the runtime animation class that maintains runtime data & plays shit
- This is the parent class of the animation blueprint
- Get Bone Transforms from a specific time t:
○ Sequence->GetAnimationPose(Output.Pose, Output.Curve, FAnimExtractContext(CurrentTime, Sequence->bEnableRootMotion));
UAnimationAsset is the classes that contain the actual data and also calculates bones & curves
- UAnimSequence
//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 / build.cs
Created April 6, 2017 20:17
4.15 UE4 Optimized Build Rules
public BBR(TargetInfo Target)
{
//Config
//BuildConfiguration.RelativeEnginePath = /* ...*/;
//Debug
//---BuildConfiguration.bOmitPCDebugInfoInDevelopment = true /* d=false */;
//BuildConfiguration.bSupportEditAndContinue = false /* d=false */;
//BuildConfiguration.bDisableDebugInfoForGeneratedCode = true /* d=true */;
//BuildConfiguration.bAllowLTCG = false /* d=false */;