turanszkij / wickedengine Goto Github PK
View Code? Open in Web Editor NEW3D engine with modern graphics
Home Page: https://wickedengine.net
License: Other
3D engine with modern graphics
Home Page: https://wickedengine.net
License: Other
selection outline Invalid In MSAA mode
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.
When I run the script it lists all the .hlsl files and nothing happens. Do you think I am using wrong python tools to run the script?
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!
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.
Am I doing something wrong or is this a potential bug?
Thanks for you help.
Cheers,
Simon
@turanszkij
This project is amazing. Do you have any plan to build this engine in Linux?
Hello Turánszki János!
I noticed if dds image Size Not Square Will display incorrectly.
Depth of filed is very old school currently and not very nice. Because it is in compute shader now, nicer things can be done, for example: http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare
An extra null pointer check is not needed in functions like the following.
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.
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 ?
Hi turanszkij:
Is there any plan to Support DX12 RayTracing?
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.
Hello!I has embed in Qt app, It's work fine.
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
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.
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.
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.
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.
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?
Changes I had to make:
Hassles:
Remaining confusion:
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.
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.)
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.
Hello!
When the editor window is resized, UI click is the wrong location.
x32 bit support?!
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 :\
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.
I would like to point out that identifiers like “_SHADERINTEROP_UTILITY_H_
” and “_WI_ALLOCATORS_H_
” do not fit to the expected naming convention of the C++ language standard.
Would you like to adjust your selection for unique names?
Hi turanszkij:
Is there any plan to add IES lights?
By IES lights I mean this:
https://docs.unrealengine.com/en-us/Engine/Rendering/LightingAndShadows/IESLightProfiles
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!
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.
Hey i noticed that both the rectangle and disc area lights display a line through the middle when you are perpendicular to them. If you strafe the camera left/right, the line moves with it. Only these two area lights seem to have the problem. See screenshots below:
Motion blur should be improved. Now it is in compute shader, so the approach described in this presentation is doable: http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare
Vulkan backend is not work
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.
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/2execute 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
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
WebAssembly platform support would be great :)
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?
QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device, VkSurfaceKHR surface) {
QueueFamilyIndices indices;
fix
if (queueFamily.queueCount > 0 && queueFamily.queueFlags & VK_QUEUE_TRANSFER_BIT) {
indices.copyFamily = i;
}
return indices;
}
How to set different materials for objects using the same mesh?
What platforms can this export to? I can't find any information about this. Thanks.
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
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.
Hi!
material "Cast Shadow" Attribute don't work in Path Tracing Render.
and how to Making a glass material.
Thanks!
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:
Commit 2c91a16
Windows 10 & DX11 backend
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?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.