Skip to content
This repository was archived by the owner on Feb 11, 2024. It is now read-only.

Repository files navigation

This is the old version of Eruption Engine the new remake is in this repository

Eruption Rendering Engine

This is my own rendering engine using Vulkan as its graphical API. I started this project in late March of 2022 because I wanted to learn more about modern computer graphics and I'm still working on it to this day.

Implemented major features:

  • Clustered Forward Renderer
  • Cascaded Shadows
  • PBR Materials.
  • Point, Spot and Directional lights.
  • Soft PCF shadows.
  • Partly Bindless Rendering
  • Depth pre-pass.
  • FXAA antialiasing.
  • HDR tonemapping.
  • Simple asset manager.
  • Custom GLTF model loader.
  • Runtime modifiable and assignable materials.
  • Simple scene editor.
  • ImGui UI.
  • And more coming in the future... :)

Dependencies

  • Visual Studio 2022
  • Vulkan SDK 1.2+

How to compile?

  1. Download Vulkan SDK and install it wherever you want.
  2. Open the EruptionEngine.sln file with Visual Studio 2022 and compile it by pressing 'Ctrl + Shift + B' or Build > Build Solution.

How to compile the shaders?

Enter the Shaders directory and run the compile.bat file.

Known issue:

The app doesn't launch on Intel GPUs due to their low max per-stage image count.

In engine screenshots:

About

My own rendering engine made with Vulkan.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - ghemyn/Eruption-Engine: My own rendering engine made with Vulkan. · GitHub
Skip to content
This repository was archived by the owner on Feb 11, 2024. It is now read-only.

Repository files navigation

This is the old version of Eruption Engine the new remake is in this repository

Eruption Rendering Engine

This is my own rendering engine using Vulkan as its graphical API. I started this project in late March of 2022 because I wanted to learn more about modern computer graphics and I'm still working on it to this day.

Implemented major features:

  • Clustered Forward Renderer
  • Cascaded Shadows
  • PBR Materials.
  • Point, Spot and Directional lights.
  • Soft PCF shadows.
  • Partly Bindless Rendering
  • Depth pre-pass.
  • FXAA antialiasing.
  • HDR tonemapping.
  • Simple asset manager.
  • Custom GLTF model loader.
  • Runtime modifiable and assignable materials.
  • Simple scene editor.
  • ImGui UI.
  • And more coming in the future... :)

Dependencies

  • Visual Studio 2022
  • Vulkan SDK 1.2+

How to compile?

  1. Download Vulkan SDK and install it wherever you want.
  2. Open the EruptionEngine.sln file with Visual Studio 2022 and compile it by pressing 'Ctrl + Shift + B' or Build > Build Solution.

How to compile the shaders?

Enter the Shaders directory and run the compile.bat file.

Known issue:

The app doesn't launch on Intel GPUs due to their low max per-stage image count.

In engine screenshots:

About

My own rendering engine made with Vulkan.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ghemyn/Eruption-Engine: My own rendering engine made with Vulkan. · GitHub
Skip to content
This repository was archived by the owner on Feb 11, 2024. It is now read-only.

Repository files navigation

This is the old version of Eruption Engine the new remake is in this repository

Eruption Rendering Engine

This is my own rendering engine using Vulkan as its graphical API. I started this project in late March of 2022 because I wanted to learn more about modern computer graphics and I'm still working on it to this day.

Implemented major features:

  • Clustered Forward Renderer
  • Cascaded Shadows
  • PBR Materials.
  • Point, Spot and Directional lights.
  • Soft PCF shadows.
  • Partly Bindless Rendering
  • Depth pre-pass.
  • FXAA antialiasing.
  • HDR tonemapping.
  • Simple asset manager.
  • Custom GLTF model loader.
  • Runtime modifiable and assignable materials.
  • Simple scene editor.
  • ImGui UI.
  • And more coming in the future... :)

Dependencies

  • Visual Studio 2022
  • Vulkan SDK 1.2+

How to compile?

  1. Download Vulkan SDK and install it wherever you want.
  2. Open the EruptionEngine.sln file with Visual Studio 2022 and compile it by pressing 'Ctrl + Shift + B' or Build > Build Solution.

How to compile the shaders?

Enter the Shaders directory and run the compile.bat file.

Known issue:

The app doesn't launch on Intel GPUs due to their low max per-stage image count.

In engine screenshots:

About

My own rendering engine made with Vulkan.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ghemyn/Eruption-Engine: My own rendering engine made with Vulkan. · GitHub
Skip to content
This repository was archived by the owner on Feb 11, 2024. It is now read-only.

Repository files navigation

This is the old version of Eruption Engine the new remake is in this repository

Eruption Rendering Engine

This is my own rendering engine using Vulkan as its graphical API. I started this project in late March of 2022 because I wanted to learn more about modern computer graphics and I'm still working on it to this day.

Implemented major features:

  • Clustered Forward Renderer
  • Cascaded Shadows
  • PBR Materials.
  • Point, Spot and Directional lights.
  • Soft PCF shadows.
  • Partly Bindless Rendering
  • Depth pre-pass.
  • FXAA antialiasing.
  • HDR tonemapping.
  • Simple asset manager.
  • Custom GLTF model loader.
  • Runtime modifiable and assignable materials.
  • Simple scene editor.
  • ImGui UI.
  • And more coming in the future... :)

Dependencies

  • Visual Studio 2022
  • Vulkan SDK 1.2+

How to compile?

  1. Download Vulkan SDK and install it wherever you want.
  2. Open the EruptionEngine.sln file with Visual Studio 2022 and compile it by pressing 'Ctrl + Shift + B' or Build > Build Solution.

How to compile the shaders?

Enter the Shaders directory and run the compile.bat file.

Known issue:

The app doesn't launch on Intel GPUs due to their low max per-stage image count.

In engine screenshots:

About

My own rendering engine made with Vulkan.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - ghemyn/Eruption-Engine: My own rendering engine made with Vulkan. · GitHub
Skip to content
This repository was archived by the owner on Feb 11, 2024. It is now read-only.

Repository files navigation

This is the old version of Eruption Engine the new remake is in this repository

Eruption Rendering Engine

This is my own rendering engine using Vulkan as its graphical API. I started this project in late March of 2022 because I wanted to learn more about modern computer graphics and I'm still working on it to this day.

Implemented major features:

  • Clustered Forward Renderer
  • Cascaded Shadows
  • PBR Materials.
  • Point, Spot and Directional lights.
  • Soft PCF shadows.
  • Partly Bindless Rendering
  • Depth pre-pass.
  • FXAA antialiasing.
  • HDR tonemapping.
  • Simple asset manager.
  • Custom GLTF model loader.
  • Runtime modifiable and assignable materials.
  • Simple scene editor.
  • ImGui UI.
  • And more coming in the future... :)

Dependencies

  • Visual Studio 2022
  • Vulkan SDK 1.2+

How to compile?

  1. Download Vulkan SDK and install it wherever you want.
  2. Open the EruptionEngine.sln file with Visual Studio 2022 and compile it by pressing 'Ctrl + Shift + B' or Build > Build Solution.

How to compile the shaders?

Enter the Shaders directory and run the compile.bat file.

Known issue:

The app doesn't launch on Intel GPUs due to their low max per-stage image count.

In engine screenshots:

About

My own rendering engine made with Vulkan.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ghemyn/Eruption-Engine: My own rendering engine made with Vulkan. · GitHub
Skip to content
This repository was archived by the owner on Feb 11, 2024. It is now read-only.

Repository files navigation

This is the old version of Eruption Engine the new remake is in this repository

Eruption Rendering Engine

This is my own rendering engine using Vulkan as its graphical API. I started this project in late March of 2022 because I wanted to learn more about modern computer graphics and I'm still working on it to this day.

Implemented major features:

  • Clustered Forward Renderer
  • Cascaded Shadows
  • PBR Materials.
  • Point, Spot and Directional lights.
  • Soft PCF shadows.
  • Partly Bindless Rendering
  • Depth pre-pass.
  • FXAA antialiasing.
  • HDR tonemapping.
  • Simple asset manager.
  • Custom GLTF model loader.
  • Runtime modifiable and assignable materials.
  • Simple scene editor.
  • ImGui UI.
  • And more coming in the future... :)

Dependencies

  • Visual Studio 2022
  • Vulkan SDK 1.2+

How to compile?

  1. Download Vulkan SDK and install it wherever you want.
  2. Open the EruptionEngine.sln file with Visual Studio 2022 and compile it by pressing 'Ctrl + Shift + B' or Build > Build Solution.

How to compile the shaders?

Enter the Shaders directory and run the compile.bat file.

Known issue:

The app doesn't launch on Intel GPUs due to their low max per-stage image count.

In engine screenshots:

About

My own rendering engine made with Vulkan.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - ghemyn/Eruption-Engine: My own rendering engine made with Vulkan. · GitHub
Skip to content
This repository was archived by the owner on Feb 11, 2024. It is now read-only.

Repository files navigation

This is the old version of Eruption Engine the new remake is in this repository

Eruption Rendering Engine

This is my own rendering engine using Vulkan as its graphical API. I started this project in late March of 2022 because I wanted to learn more about modern computer graphics and I'm still working on it to this day.

Implemented major features:

  • Clustered Forward Renderer
  • Cascaded Shadows
  • PBR Materials.
  • Point, Spot and Directional lights.
  • Soft PCF shadows.
  • Partly Bindless Rendering
  • Depth pre-pass.
  • FXAA antialiasing.
  • HDR tonemapping.
  • Simple asset manager.
  • Custom GLTF model loader.
  • Runtime modifiable and assignable materials.
  • Simple scene editor.
  • ImGui UI.
  • And more coming in the future... :)

Dependencies

  • Visual Studio 2022
  • Vulkan SDK 1.2+

How to compile?

  1. Download Vulkan SDK and install it wherever you want.
  2. Open the EruptionEngine.sln file with Visual Studio 2022 and compile it by pressing 'Ctrl + Shift + B' or Build > Build Solution.

How to compile the shaders?

Enter the Shaders directory and run the compile.bat file.

Known issue:

The app doesn't launch on Intel GPUs due to their low max per-stage image count.

In engine screenshots:

About

My own rendering engine made with Vulkan.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages