Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Sep 14 22:52

    turanszkij on master

    updated third person controller… (compare)

  • Sep 14 18:20

    turanszkij on master

    camera constant buffer refactor (compare)

  • Sep 14 16:22

    turanszkij on master

    added chromatic aberration post… (compare)

  • Sep 14 14:53

    turanszkij on master

    sky + readme update (compare)

  • Sep 11 22:53

    turanszkij on master

    new-sky dynamic sky atmosphere updates (compare)

  • Sep 11 22:48

    turanszkij on new-sky

    dynamic sky atmosphere updates (compare)

  • Sep 08 21:55

    turanszkij on new-sky

    new-sky (compare)

  • Sep 04 20:42

    turanszkij on master

    cloud update (compare)

  • Sep 04 19:08

    turanszkij on master

    updated clouds and shadercompil… (compare)

  • Sep 03 20:02

    turanszkij on master

    small refactor (compare)

  • Sep 02 10:59
    turanszkij commented #28
  • Aug 31 19:29

    turanszkij on appveyor

    removed uwp (compare)

  • Aug 31 19:00

    turanszkij on appveyor

    block rdp (compare)

  • Aug 31 18:51

    turanszkij on appveyor

    rdp no password (compare)

  • Aug 31 18:46

    turanszkij on appveyor

    rdp (compare)

  • Aug 31 18:39

    turanszkij on appveyor

    try (compare)

  • Aug 31 18:28

    turanszkij on appveyor

    updated to vs 2019 (compare)

  • Aug 31 18:26

    turanszkij on appveyor

    updated to vs 2019 (compare)

  • Aug 29 19:20

    turanszkij on master

    lightmap fix (compare)

  • Aug 28 21:46

    turanszkij on master

    updated hello world sample (compare)

Black Falcon
@capitalknew
Hello, Wicked Engine will support Shader Model 6.0?
Turánszki János
@turanszkij
Hi, I would like to add DX12 and Vulkan support in the future so yes, it is definetly planned!
Matthias Moulin
@matt77hias
Small VCT question: why do you offset the surface position twice for voxel cone tracing?
float dist = g_xWorld_VoxelRadianceDataSize 2;
float3 startPos = P + N
g_xWorld_VoxelRadianceDataSize * 2; https://github.com/turanszkij/WickedEngine/blob/master/WickedEngine/voxelConeTracingHF.hlsli#L40
You will calculate the position of the first iteration as: tc = startPos + coneDirection * dist; having both an offset in startPos and dist?
Turánszki János
@turanszkij
@matt77hias Hi Matthias, as you can see I'm offsetting once by surface normal and once again by cone direction. The offset by surface normal is required because I don't want to include the surface's own voxel in the tracing. Then I also step away in the cone direction initially, because I don't want each cone to start at the same voxel (but linear filtering can pull samples from that voxel so it's not entirely skipped). Also, stepping a single voxel along surface normal is not enough by itself, because diagonal rays can still hit the self-voxel, so it also helps a bit in that case. The multiply size by 2 is as you know because my default voxel size is 2 world space units, something I will fix or document better sometime. The step sizes probably require some more tweaks though as well as cone aperture sizes for different cone counts, etc.
Matthias Moulin
@matt77hias
Thanks for the details. Good point about diagonal directions versus voxel size. If every cone would start in the same voxel, however, the cone weights could ensure that no contribution would be counted twice, I think.
Benjamin Stanley
@HeadClot
Hello
Turánszki János
@turanszkij
@HeadClot Hello, you can write any question or anything related to the engine here and I will answer as soon as I can.
RuskiHalalBrand
@inSecD
Hiii!
Kenji245
@Kenji245
@turanszkij any plan to create Lua scripting tutorial videos?
Turánszki János
@turanszkij
@Kenji245 Hi, no plans I'm afraid, but good idea, I'll think about it. I want to at least include a bigger lua script demo than the current one. I have made a basic third person character controller/dungeon generator in lua previously, but needs to be updated before I include it. Thanks for feedback!
Kenji245
@Kenji245
well, at least please describe how to link a single Lua Script(lets say a base script) to the main.cpp. i saw it from the tests project but i'm not sure if i'll do the right thing.
Turánszki János
@turanszkij
@Kenji245 I'm afraid there is nothing of a more advanced system in place yet, this is it, you can load text files with wiLua::RunFile("myFile.lua"). You can also run a file from a lua script by calling doFile("myFile.lua") from a lua script. You can also load a string from a C++ file by wiLua::RunText("myLoaCommands as text")
Kenji245
@Kenji245
alright basically thats the info i need :smile: i will try it out, thanks by the way
Turánszki János
@turanszkij
@Kenji245 Also, on application load, startup.lua file is called as a script if the file itself is found in the app working directory. And from a lua script you can immediately access the "main component" as main which has a few functions to control application state. Application state change could be something like calling main.SetActiveComponent(myGameComponent). The idea is that for example a main menu could be a game component like a Renderable2DComponent, and game could be DeferredRenderableComponent for instance and the MainComponent can switch between them. Sorry that it is not well documented yet...
Turánszki János
@turanszkij
@Kenji245 Oh and you can also press "Home" button in the application like Editor which will bring down a blue screen and you can write lua script, but very bare bones still, you can only input with keyboard
Matthias Moulin
@matt77hias
Was looking for something in "Interactive Indirect Illumination Using Voxel Cone Tracing" and noticed the color blend formula c :=
αc + (1 − α)α2c2. Isn't the α2 missing from your blend formula https://turanszkij.wordpress.com/2017/08/30/voxel-based-global-illumination/? For example an initial sample of [1,1,1,Ɛ], while marching, currently contributes [1,1,1] as opposed to [Ɛ,Ɛ,Ɛ]? Though, I assume the effect is small in typical scenes, since the low alpha values are contained in the coarse mip levels and the fully transparent cells which already have a color of [0,0,0].
Turánszki János
@turanszkij
Ahh, I don't have the time to look into this now, sorry. Have to finish the cpu-side rewrite, it is already taking too long. The current state of Voxel GI definitely can be improved and I am still slightly interested, and there are even more interesting things such as solid voxelization, anisotropic voxelization, voxel cascades. Though pure raytracing is much more satisfying and interesting these days, in my opinion. :)
Matthias Moulin
@matt77hias
wiECS.h's ComponentManager uses a separate collection of entities (32 bit values) and components. Sorting the latter requires sorting the former and updating the lookup table as well. I wonder if the gain of decoupling the entities from the components for processing outweighs the bookkeeping? I mean if you add the entity to each component, what would the performance drop be? Or is there another reason?
*Other reason for the decoupling
Was working on something similar to allow reordering the components. If a multi iterator which wraps multiple iterators would be compliant with the std, all the std algorithms could be used and everything would be transparent (ComponentManager could be implemented as a separable map for instance). Unfortunately, pairing iterators is not supported for operator*, operator->, operator[] :-( )
Turánszki János
@turanszkij
Good insight! That was the first way I did it, to include the entity ID in components (as component being a "base class" of sort that must always include entity ID). But I don't like that way because most of the time ideally I only want to access a component. I want a component to be as light weight as possible, what if I really just need a component which is just 8 bits? Then having an extra 32 bits always loaded would be very heavy. Sorting is not something that is done very frequently (really right now I only do sorting on the hierarchy components whenever I attach or detach), so I don't think it's important to optimize for that instead and lose flexibility. Also, when I only want to look up an entity ID, it's also more light weight. I sometimes do this just to see if an entity contains a specific component or not.
As for the other part, most of the time I'd like to avoid overloading operators and doing fully std compliant solution. Even though I slipped in a operator[] anyway to access components…
Matthias Moulin
@matt77hias
Thanks for the answer, János! I think it is also cleaner since you can treat components as values in comparisons and copies without having to handle the entity member variable.
I also assume that the transformation is retrieved the most some_component --> entity --> transform_component (e.g., for populating some model buffer).