Giter VIP home page Giter VIP logo

wickedengine's Introduction

Wicked Engine

Github Build Status Discord chat follow on Twitter
Steam Store


Wicked Engine is an open-source 3D engine with modern graphics. Use this as a C++ framework for your graphics projects, a standalone 3D editor, LUA scripting or just for learning.
This project is hosted on GitHub.

You can get the full source code by using Git version control and cloning https://github.com/turanszkij/WickedEngine.git, or downloading it as zip. You can also download prebuilt and packaged version of the Editor here (requires Github sign in): Github Build Status

Platforms:

  • Windows 10 or newer
  • Linux
  • UWP
  • Xbox Series X|S
  • PlayStation 5 [in progress]

How to build:

Windows

To build Wicked Engine for Windows (10 or later), use the latest version of Visual Studio and the provided WickedEngine.sln solution file. By simply pressing F5, the Editor application will be built. There are other example projects that you can build as well within the solution.

If you want to develop a C++ application that uses Wicked Engine, you can build the WickedEngine static library project for the appropriate platform, such as WickedEngine_Windows and link against it. Including the "WickedEngine.h" header will attempt to link the binaries for the appropriate platform, but search directories should be set up beforehand. For example, you can set additional library directories to $(SolutionDir)BUILD\$(Platform)\$(Configuration) by default. For examples, see the Template, Tests, and Editor projects.

If you have questions or stuck, please use the windows communication channel on Discord: Discord chat

Linux

To build the engine for Linux, use Cmake. You can find a sample build script for Ubuntu here (in the linux section). On the Linux operating system, you will need to ensure some additional dependencies are installed, such as Cmake (3.7 or newer), g++ compiler (C++ 17 compliant version) and SDL2. For Ubuntu 20.04, you can use the following commands to install dependencies:

sudo apt update
sudo apt install libsdl2-dev
sudo apt install build-essential

To build the engine, editor and tests, use cmake and then make:

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

If you want to develop an application that uses Wicked Engine, you will have to link to libWickedEngine.a and #include "WickedEngine.h" into the source code. For examples, look at the Cmake files, or the Tests and the Editor applications.

You can also download prebuilt and packaged versions of the Editor and Tests here (requires Github sign in): Github Build Status

If you have questions or stuck, please use the linux communication channel on Discord: Discord chat

UWP

To build for UWP platform, use the latest version of Visual Studio and the provided WickedEngine.sln solution file. The WickedEngine_UWP Project will build the engine for UWP platform as static library. The Template_UWP and Editor_UWP are two applications that will work on UWP platform that you can try. But first you must also build the binary shaders and embed them into the executable. To build and embed shaders, run the OfflineShaderCompiler projects with the hlsl6 shaderdump command line arguments. Then Rebuild the WickedEngine_UWP to create the engine with embedded shaders included. Now you can build an UWP application and run it on PC or Xbox.

  • To run the UWP application on Xbox, enable developer mode on your Xbox, and choose "Remote Machine" as a debugging target in Visual Studio. Enter the IP address of the Xbox into the Machine Name field of debugging project settings (make sure that you are modifying the debug settings for Remote Machine). The authentication mode should be set to "Universal (Unencrypted Protocol)" and upon launching the application from Visual Studio, you will need to enter the security PIN that you can view on the Xbox developer settings.
    Note that to utilize the full performance of Xbox Series, it is required to build with the native Xbox SDK build tools instead of UWP

Xbox Series X|S

To build for Xbox Series natively, download and install the Xbox SDK from your Xbox developer account. Using the latest version of Visual Studio, create a new static library project for the Xbox Series platform and reference the WickedEngine_SOURCE shared project. Xbox specific extension files required for building, or sample projects will be provided for registered Xbox developers on request.

PlayStation 5

To build for PlayStation 5, download and install the PlayStation 5 SDK from your PlayStation developer account. Using the latest Visual Studio, create a new PlayStation 5 static library project and reference the WickedEngine_SOURCE shared project. PlayStation 5 specific extension files requierd for building, or sample projects will be provided for registered PlayStation developers on request.

Examples:

Initialization (C++):

// Include engine headers:
#include "WickedEngine.h"

// Create the Wicked Engine application:
wi::Application application;

// Assign window that you will render to:
application.SetWindow(hWnd);

// Run the application:
while(true) {
   application.Run(); 
}

Basics (C++):

application.Initialize(); // application will start initializing at this point (asynchronously). If you start calling engine functionality immediately before application.Run() gets called, then you must first initialize the application yourself.

wi::initializer::InitializeComponentsImmediate(); // (Optional) allows to initialize all components immediately and block the application until finished. Otherwise the initialization will take place at the first application.Run() asynchronously. This is useful if you want to start using other parts of the engine before application.Run() is called.

wi::RenderPath3D myGame; // Declare a game screen component, aka "RenderPath" (you could also override its Update(), Render() etc. functions). 
application.ActivatePath(&myGame); // Register your game to the application. It will call Start(), Update(), Render(), etc. from now on...

wi::scene::LoadModel("myModel.wiscene"); // Simply load a model into the current global scene
wi::scene::GetScene(); // Get the current global scene

wi::scene::Scene scene2; // create a separate scene
wi::scene::LoadModel(scene2, "myModel2.wiscene"); // Load model into a separate scene
wi::scene::GetScene().Merge(scene2); // Combine separate scene with global scene

myGame.setFXAAEnabled(true); // You can enable post process effects this way...

wi::RenderPath2D myMenuScreen; // This is an other render path, but now a simple 2D one. It can only render 2D graphics by default (like a menu for example)
application.ActivatePath(&myMenuScreen); // activate the menu, the previous path (myGame) will be stopped

wi::Sprite mySprite("image.png"); // There are many utilities, such as a "sprite" helper class
myMenuScreen.AddSprite(&mySprite); // The 2D render path is ready to handle sprite and font rendering for you

wi::audio::Sound mySound;
wi::audio::CreateSound("explosion.wav", &mySound); // Loads a sound file
wi::audio::SoundInstance mySoundInstance;
wi::audio::CreateSoundInstance(&mySound, &mySoundInstance); // Instances the sound file, it can be played now
wi::audio::Play(&mySoundInstance); // Play the sound instance
wi::audio::SetVolume(0.6, &mySoundInstance); // Set the volume of this soundinstance
wi::audio::SetVolume(0.2); // Set the master volume

if (wi::input::Press(wi::input::KEYBOARD_BUTTON_SPACE)) { wi::audio::Stop(&mySoundInstance); } // You can check if a button is pressed or not (this only triggers once)
if (wi::input::Down(wi::input::KEYBOARD_BUTTON_SPACE)) { wi::audio::Play(&mySoundInstance); } // You can check if a button is pushed down or not (this triggers repeatedly)

Scripting (LUA):

-- Set a rendering path for the application
path = RenderPath3D;
application.SetActivePath(path);    -- "application" is created automatically by wi::Application

-- Load a model entity into the global scene:
entity = LoadModel("myModel.wiscene");

-- Load a model entity into a separate scene:
scene2 = Scene()
entity2 = LoadModel(scene2, "myModel2.wiscene");

-- Combine the separate scene with the global scene:
scene.Merge(scene2);

-- Get the current global scene:
scene = GetScene();

-- Move model to the right using the entity-component system:
transform = scene.Component_GetTransform(entity);
transform.Translate(Vector(2, 0, 0));

-- Print any WickedEngine class information to the backlog:
getprops(application);	-- prints the application methods
getprops(scene);	-- prints the Scene class methods
getprops(path);	-- prints the deferred render path methods

-- Play a sound:
sound = Sound()
audio.CreateSound("explosion.wav", sound)
soundinstance = SoundInstance()
audio.CreateSoundInstance(sound, soundinstance)  -- several instances can be created from one file
audio.Play(soundinstance)
audio.SetVolume(0.6, soundinstance)  -- sets the volume of this soundinstance
audio.SetVolume(0.2)  -- sets the master volume

-- Check for input:
if(input.Press(KEYBOARD_BUTTON_LEFT)) then
   audio.Play(soundinstance); -- this will play the sound if you press the left arrow on the keyboard
end

(You can enter lua scripts into the backlog (HOME button), or the startup.lua script which is always executed on application startup if it is found near the app, or load a script via dofile("script.lua") command)

For more code samples and advanced use cases, please see the example projects, like the Template_Windows, Tests, or Editor project. There are also sample models and scripts included with Wicked Engine in the Content/models and Content/scripts folders. Check them out to learn about more features.

Scripting API:

You can use a great number of engine features through the Lua scripting api, which can even be used real time while the program is running. The included applications, like the Editor, contain a scripting input method toggled by the "Home" key. A blue screen will be presented where the user can type in LUA commands. It is very minimal in regards to input methods. For further details, please check the scripting API documentation: Wicked Engine Scripting API

Model import/export:

The native model format is the WISCENE format. Any application using Wicked Engine can open this format efficiently.

In addition, the Editor supports the importing of some common model formats (the list will potentially grow):

  • OBJ
  • GLTF 2.0
  • VRM

The preferred workflow is to import models into the Editor, and save them as WISCENE, then any Wicked Engine application can open them.

Graphics API:

The default renderer is DirectX 12 on Windows and Vulkan on Linux. The DirectX 11 renderer is no longer available starting from version 0.57.0, but it can be found on the dx11-backup branch. You can specify command line arguments (without any prefix) to switch between render devices or other settings. Currently the list of options:

Argument Description
dx12 Use DirectX 12 rendering device
vulkan Use Vulkan rendering device
debugdevice Use debug layer for graphics API validation. Performance will be degraded, but graphics warnings and errors will be written to "Output" window
gpuvalidation Use GPU Based Validation for graphics. This must be used together with the debugdevice argument. Currently DX12 only.
gpu_verbose Enable verbose GPU validation mode.
igpu Prefer integrated GPU selection for graphics. By default, dedicated GPU selection will be preferred.
alwaysactive The application will not be paused when the window is in the background.


Other software using Wicked Engine

  • Game Guru MAX: Easy to use game creator software
  • Flytrap: Demoscene production by qop
  • doddering: Demoscene production by qop
  • Your project: add your project to this readme and open a pull request

Troubleshooting

If you are having trouble getting the applications to run, make sure that you satisfy the following conditions:

  • If you built the application with Visual Studio, run it from the Visual Studio environment, where the executable working directory is set up to be the Project directory (not the build directory where the exe will be found)
  • If you want to run an application without Visual Studio, either copy the executable from the BUILD directory to the correct project directory, or set the working directory appropriately. You can also check the Working directory setting in Visual Studio to find out the right working directory of every project.
  • If you want to build UWP application, then you will first need to build the shaders into a shader dump. For that, build and run the offlineshadercompiler project with the hlsl6 shaderdump command line arguments. If the wiShaderDump.h file is successfully generated, rebuilding the engine will embed all the shader files so they are not loaded separately. But embedded shaders also cannot be recompiled during runtime.

  • If you experience crashes, follow these steps to find out the problem:
    • make sure your environment is up to date, with latest graphics drivers and operating system updates.
    • see if there is a wiBackLog.txt in your user temp folder (for example: C:\Users\username\AppData\Local\Temp), and request help on Discord or Github issue
    • build the engine in Debug mode and try to run it, see where it crashes, provide call stack on Discord or Github issue
    • run the engine with the debugdevice command argument and post the text from your console output window when the crash happens
      • for very advanced users, using gpuvalidation with debugdevice will print additional graphics debug information

wickedengine's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wickedengine's Issues

Swap Chain Creation Failed

I loaded the sln file into visual studio 2015, selected x64 as my target build and in debug mode with the WickedEngineEditor project as the startup project. I compiled everything just fine and tried to debug the WickedEngineEditor exe only to get a "Swap chain creation failed" dialogue. I do have the DirectX sdk installed (it compiled just fine) so I'm not sure the issue. My graphics card is a Nvidia gtx 980 ti hybrid, I'm on windows 10.

When trying to compile / run WickedEngineDemos I get the same issue (I first had to bypass some errors to do with the water demo, you may have broken that by updating the engine api but not the demos? I also had to add the x64 build platform to the primary demo project as it only had Win32 and x86 was conflicting with the x64 engine output binary.)

multi-thread rendering

do you have any plan to support multi-thread rendering just like filament.
the main thread will construct the rendering commands into one queue and the rendering back-end will fetch the command and executing the commands in another thread ?

GUI improvements

The existing GUI system should be improved for better Editor usability, and better features:

-Tree view: for displaying scene graph entities, like "outliner" in Blender
-Timeline: to create animations
-Window tabs, window docking: Reduce multiple windows cluttering up space in the Editor
-Controller support: The Editor should be operatable with a controller at least to some minimal extent
-Widget images and animations: GUI should be used in game as well, but this must be nicer than just the current colored boxes approach.

I has embed in Qt app, but how resize render window?

Hello!I has embed in Qt app, It's work fine.
fine

but resize window,It's wrong.
wrong

My resize Code:
wiRenderer::GetDevice()->SetResolution(evt->size().width(), evt->size().height()); wiRenderer::getCamera()->SetUp((float)wiRenderer::GetInternalResolution().x, (float)wiRenderer::GetInternalResolution().y, 0.1f, 800);

Please help me! Thanks

MSAAResolve should be part of RenderPass

MSAAResolve should be part of RenderPass and not expose it like it is now. In Vulkan, it is generally recommended to do this as part of a renderpass, so shouldn't maintain a version that is potentially less optimal than it should be.

SSAO and draw distance

Hi,

I noticed that SSAO only seems to work well with a short view distance. Here is sponza with a draw distance of 500m:

image

and again at 5000m:

image

At 5000m the result looks wrong - I'm curious if this is just an inherent limitation or something that could be improved/fixed?

Thanks

Start wrapping wicked into blender 2.8

Can you set this engine up in blender 2.8 like old bge?

press P -> builds game logic and runs?

maybe use a nodal edit system to generate game logic like ue4 kinda?

Texture refactor

Don't really need the Texture1D, Texture2D, Texture3D classes in CPU code, let the TextureDesc class have a type enum instead. Also remove multiple creation functions from the device, like CreateTexture2D(), CreateTexture3D() and have simple CreateTexture() instead.

Also not interested in SampleDesc::Quality, only SampleCount.

Editor hangs on startup

Hi turanszkij,

Your engine looks wicked! Your demo videos are very impressive for a solo development and your code looks very good. Awesome work.

I'm interested in trying out Wicked Engine but the editor seems to hang in LoadShaders due to a deadlock (it can't get a lock in wiResourceManager::get).

I've tried debug, release, 32 bit and 64 bit builds on two different PCs but with the same result on both the master branch and Vulkan branch running inside or outside on Visual Studio.

image

Am I doing something wrong or is this a potential bug?

Thanks for you help.

Cheers,

Simon

cannot build on MSVC2019

Not sure if I'm doing something wrong,

I clicked the "Open in Visual Studio" button on the github page, it opened in MSVC, and when I try to build the solution it fails. I can't even see the error messages because I get a "Path Too Long" exception and it blanks out the error list. I also tried building just the "WickedEngine_Windows" and "WickedEngine_SHARED", but those fail as well

would love to check this engine out, please let me know what I'm doing wrong!

edit: I downloaded the zip instead of clicking "open in visual studio", then unzipped and opened the .sln
when I try to build I can at least see the errors now, I get 1732 build errors :\

Saving a glTF model as a wiscene doesn't load back correctly

Hello,

I am having an issue where I try to load a glTF model as a wiscene and when I load it back in the editor it comes out blank white.

Steps to reproduce:

  1. Download this glTF 2.0 sample (any format will do): https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/DamagedHelmet
  2. Import the model into the editor, it will look fine at this point.

image

  1. Save your scene as a wiscene file.
  2. Close and reopen the editor.
  3. You should see something like the image below.

image

Commit 2c91a16

Windows 10 & DX11 backend

Path Tracing Render material

Hi!
material "Cast Shadow" Attribute don't work in Path Tracing Render.
and how to Making a glass material.
Thanks!

Refactor WinAPI int types and use stdint instead.

Types like UINT should be uint32_t, etc. to follow c++ standards instead of WinAPI types. There are a lot more types like this, ULONG, LONG, BOOL, FLOAT, etc, remove all.

WinAPI and DirectX code should however keep to use and cast to these types.

Shader compiler err on Win10 vs 2015, Win SDK 8.1

1>------ Build started: Project: WickedEngine_SHADERS, Configuration: Release x64 ------

1>C:\Dev\Git\External\WickedEngine\WickedEngine\generateMIPChain2D_GaussianCS.hlsl(29,11-62): error X3676: typed UAV loads are only allowed for single-component 32-bit element types

Platforms?

What platforms can this export to? I can't find any information about this. Thanks.

[Question] 30k+ lights

Hi,

I am currently evaluating WickedEngine as possbile render backend for a visualization for animated chain lights. Do think it is possible to render 30k+ light points efficiently? There will be no additional geometry but a plane as the floor.

I really dig your project because of its simplicity. Other engine are much more complex while I do not need 90% of it.

UI system

I found that the wiGUI is still very simple at present, and many functions are lost.
Is it possible to integrate external UI engines: for example, imgui...
Or there is another development plan for UI system.

Tessellation possibly not working properly

Hi, great work on this, I'm always happy when I see this engine get updated. I'm learning a lot from you.

Anyway, whenever I try and enable tessellation in D3D11 and then proceed to use the tessellation multipler on a mesh, it turns black instead of being tessellated.

[Question]The second parameter in function "ExecuteCommandList"

deviceContexts[GRAPHICTHREAD_IMMERIATE]->ExecuteCommandList(commandlists[i], true); commandlists[i]->Release(); commandlists[i] = nullptr; deviceContexts[i]->ClearState();
I found that in the function void ExecuteCommandList( ID3D11CommandList *pCommandList, BOOL RestoreContextState );,you pass true to the RestoreContextState. After that you use the clearstate()to set all state .That means we do not need to save and restore the state after 'excutecommandlist'.So,I don't think this step is necessary.Besides,according to the API document ,"When applications use FALSE, they can avoid unnecessary and inefficient state transitions.".I think pass "false" to the 'RestoreContextState 'is better.What do you think?

Voxel GI improvements

sponza_corner

Is there a way to prevent this type of artifacting?

I played with voxel size and the other GI parameters, and it did help . But it did not solve the problem entirely.

GraphicsDevice::DownloadResource improvement

DownloadResource is currently designed to stall the GPU, but easy to use. However, this is not good practice and difficult to implement in DX12 and Vulkan. Instead, DownloadResource() functionality should be removed and instead add the ability to:

-CopyBuffer/CopyTexture or CopyResource
-Readback staging buffer/texture

Like GPU queries, it will be up to the user to "ringbuffer" downloading resources. Helper functionality could be added, just like GPUQueryRing to safely read back resources without stalling the GPU.

vulkan failed to submit graphics command buffer

I must say your work is wonderful! I have built the engine successfully and the tests were beautiful.

When i switched the backend from default dx11 to vulkan, i got an exception:
failed to submit graphics command buffer

I have upgraded the driver to solve the extension problem, but this one seems like semaphore is used without initialization.

I learn vulkan by vulkan-totorial.com and i have some code like yours. but when the exception occurs, i find pWaitSemaphores is unreadable(file wiGraphics_Vulkan.cpp line 4535). In my tutorial sample code, this variable of structure submitinfo is readable in the vs debugger.

I build and run with Windows 10 x64, Vulkan sdk 1.1.106 and gtx 1080ti(driver version 431).

thanks!

[random notes] Compiling to run on Windows 8.1 + Intel HD4000

Changes I had to make:

  • Thread naming in the job system had to go away
    • symbol isn't actually there in the current runtimes for 8.1, could just be a hotfix issue - didn't care
  • #ifdef'd the DirectX 12 bits
    • can't do a DX12 backend selection without the DLLs for DX12, obviously not available on 8.1
  • Added header include indirection for wiSound (stub headers including real headers on #ifdef's)
    • Dummy Audio implementation, everything passes
    • was not going to tackle XAudio 2.9 -> 2.8 issues / universal crt dependency hell
      • dummy system dodges the ridiculous headers XAudio brings with it
  • Had to change the DX11 swap chain creation description parameters
    • that's more about making it run on an Intel HD4000 which doesn't support alpha-mode

Hassles:

  • took some trial and error to figure out the path expectations for the resources the editor uses
    • I should've just duped them from the prebuilt editor

Remaining confusion:

  • What is is the secondary scene? I'm probably blindly missing something.

Getting ~30 fps / 30 GPU ms on an Intel HD4000 in both Tiled-Forward and Forward render-paths for the shadow-test. GPU times (if I'm reading that correctly) are going: Opaque scene > secondary scene > post-process. At 720p w/ all toggleable post-processing disabled, those times are probably all going into PBR and the whatever bits of post-processing that can't be turned off in the editor (exposure).

That's actually a lot better than I was expecting a potato to do. With agressive trimming I was able to get it down to 17ms a frame - but that's sans shadows and quite blah. Chipset not quite able to deal with PBR's expensiveness.

Was fun.

cling based C++ as scripting language / hot code reload

cling based C++ as scripting language / hot code reload
Why? Able to run C++ script in runtime or compile it for max speed ( as in example https://github.com/derofim/cling-cmake )

HOT code reload
possible approaches:

store app state
fix cling undo for files
https://root-forum.cern.ch/t/loading-unloading-class-as-interpreted-macro-in-cling-multiple-times/32976/2

execute cling code to change callbacks & variables
nested cling::Interpreter with multiple cling::MetaProcessor
IDK how to do it, but you can create child cling::Interpreter

DX12 assert error

When I run Test as dx12, I got an assert error like this

Program: G:\GameEngine\WickedEngine\Win32\Debug\Tests.exe
File: g:\gameengine\wickedengine\wickeden...\wigraph...x12.cpp
Line: 1435.
I debug for this hr return value and I got DXGI_ERROR_DEVICE_REMOVED.
How was that happen?
Thanks very much.

Windows build spirv failed

I'm using Windows10x64 to build spirv but failed, here is the err log:

lightCullingCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

In file included from lightCullingCS_ADVANCED.hlsl:2:
./lightCullingCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

In file included from lightCullingCS_ADVANCED_DEBUG.hlsl:3:
./lightCullingCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

In file included from lightCullingCS_DEBUG.hlsl:2:
./lightCullingCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

In file included from lightCullingCS_DEFERRED.hlsl:2:
./lightCullingCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

In file included from lightCullingCS_DEFERRED_ADVANCED.hlsl:3:
./lightCullingCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

In file included from lightCullingCS_DEFERRED_ADVANCED_DEBUG.hlsl:4:
./lightCullingCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

In file included from lightCullingCS_DEFERRED_DEBUG.hlsl:3:
./lightCullingCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

tileFrustumsCS.hlsl:2:10: fatal error: 'cullingShaderHF.hlsli' file not found
#include "cullingShaderHF.hlsli"
^

about 10 hsls cmds failed to compile, others were ok. I reconfirmed the file "cullingShaderHF.hlsli" existed.

The file exists but i still have the "file not found" complains. Please help, thanks a lot!

[Question] Support Qt Embedding

Hello Turánszki János!
This is a very cool project. Light and powerful!
Is it possible to embed wiRenderer into Qt widget and if so, how? This functionality would be extremely useful for interactive 3D content in Qt , since both Unity and UE4 cannot be embedded into Qt without extensive hacks.

one issue in findQueueFamilies

QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device, VkSurfaceKHR surface) {
	QueueFamilyIndices indices;

issue
if (queueFamily.queueCount > 0 && queueFamily.queueFlags == VK_QUEUE_TRANSFER_BIT) {
indices.copyFamily = i;
}

fix
if (queueFamily.queueCount > 0 && queueFamily.queueFlags & VK_QUEUE_TRANSFER_BIT) {
indices.copyFamily = i;
}
return indices;
}

Path Tracing Render Denoise

Hi!
Path Tracing Render is amazing.
But I found that there were too many noise points where the light was not enough.
Is there any way to reduce noise?
in addition
Can these two libraries help:
1、NVIDIA OptiX Denoise Library
2、Intel Open Image Denoise Library

[Bug] Physics asset not saving correctly

Hi,
To do some testing I frequently like to make changes to Sponza. When I save my changes, everything saves correctly, except for the blowing curtain. When opening the changed wiscene file, the blowing flag seemingly disappears.
I ended up finding it: it became microscopic and is in the center of the floor, with no physics applied.
I'm assuming this isn't scene specific.

Area lights should be supported everywhere

Intel I7
Windows 10
64 bit
Nvidia 1060 GTX
It is easy to see the problem, just add an area light to the top of the Cornellbox. Add a GIProbe. And turn on Global Illumination and Global Illumination Debug. Notice that the voxelization is really strange.

[Question]Client script compilation

I have used game engines like unreal engine and cry engine. There the editor compiles the codes while the editor and engine is running. How does they load the user written game scripts at runtime?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.