- 2011 - A trip through the Graphics Pipeline 2011
- 2013 - Performance Optimization Guidelines and the GPU Architecture behind them
- 2015 - Life of a triangle - NVIDIA's logical pipeline
- 2015 - Render Hell 2.0
- 2016 - How bad are small triangles on GPU and why?
- 2017 - GPU Performance for Game Artists
- 2019 - Understanding the anatomy of GPUs using Pokémon
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "FileVersion": 3, | |
| "EngineAssociation": "5.2", | |
| "Description": "Minimum viable plugin dependencies for a usable Unreal Engine project", | |
| "DisableEnginePluginsByDefault": true, | |
| "Plugins": [ | |
| { | |
| "Name": "PluginBrowser", | |
| "Enabled": true | |
| }, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const std = @import("std"); | |
| pub fn build(b: *std.Build) void { | |
| // Standard target options allows the person running `zig build` to choose | |
| // what target to build for. Here we do not override the defaults, which | |
| // means any target is allowed, and the default is native. Other options | |
| // for restricting supported target set are available. | |
| const target = b.standardTargetOptions(.{}); | |
| // Standard optimization options allow the person running `zig build` to select |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| template<typename T> | |
| void bitonic_sort64(T vals_[64]) | |
| { | |
| int h=-1; | |
| do | |
| { | |
| for(unsigned i=0; i<32; ++i) | |
| { | |
| unsigned idx0=2*i; | |
| unsigned idx1=4*(i&h)-2*(i+h)-1; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include "EditorUtilityWidgetBlueprint.h" | |
| #include "EditorUtilitySubsystem.h" | |
| UObject * Blueprint = UEditorAssetLibrary::LoadAsset(FString(TEXT("EditorUtilityWidgetBlueprint'/Game/EditorUtilities/MyWidget.MyWidget'"))); | |
| if(IsValid(Blueprint)) { | |
| UEditorUtilityWidgetBlueprint* EditorWidget = Cast<UEditorUtilityWidgetBlueprint>(Blueprint); | |
| if (IsValid(EditorWidget)) { | |
| UEditorUtilitySubsystem* EditorUtilitySubsystem = GEditor->GetEditorSubsystem<UEditorUtilitySubsystem>(); | |
| EditorUtilitySubsystem->SpawnAndRegisterTab(EditorWidget); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Buffer<uint> Input; | |
| RWBuffer<uint> Output; | |
| //returns the index that this value should be moved to to sort the array | |
| uint CuteSort(uint value, uint laneIndex) | |
| { | |
| uint smallerValuesMask = 0; | |
| uint equalValuesMask = ~0; | |
| //don't need to test every bit if your value is constrained to a smaller range |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #ifndef TRICUBIC_INCLUDED | |
| #define TRICUBIC_INCLUDED | |
| float4 Cubic(float v) | |
| { | |
| float4 n = float4(1.0, 2.0, 3.0, 4.0) - v; | |
| float4 s = n * n * n; | |
| float x = s.x; | |
| float y = s.y - 4.0 * s.x; | |
| float z = s.z - 4.0 * s.y + 6.0 * s.x; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| The MIT License (MIT) | |
| Copyright (c) 2018 Eric Arnebäck | |
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #ifndef _EASING_INCLUDED_ | |
| #define _EASING_INCLUDED_ | |
| float ease_linear(float x) { | |
| return x; | |
| } | |
| float ease_in_quad(float x) { | |
| float t = x; float b = 0; float c = 1; float d = 1; | |
| return c*(t/=d)*t + b; |
This article has been updated and is available here.
NewerOlder