Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

216 Neutral

About LifeIsGood

  • Rank

Personal Information

  • Role
  • Interests


  • Github

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. LifeIsGood

    A Novel Approach To (Non-Manifold) Dual Contouring

    @Gnollrunner If it suits your needs, go for it. My goal, however, is to develop an algorithm that allows me to completly freely generate a mesh that approximates the underlying surface closely. That is, I don't want to solve specific cases, but find a general solution. @TeaTreeTim Interesting, but as mentioned above the constraint is that it should run in realtime. (I.e. "game" realtime aka it should take no longer than maybe 2ms. I actually am playing around with a new idea in my head, that I'm going to try out once I have some time over.
  2. LifeIsGood

    Age restrictions with companies

    Something that I would add to the other replies you’ve got so far: Don’t stop with your education at the degree level. Game dev can be a quickly moving industry. Try to keep up with good practices, engines/frameworks and programming/scripting languages that are being used or the industry is moving to. The cool thing about game dev is, that a lot of practices are being shared. Many good presentations are held regularly, so try to take something out of those.
  3. I’ve done some freelancing in my spare time, and what I noticed is that none of the best contracts Ive had were contracts that I have “applied” for, but rather invitations from companies who found my profile and liked my portfolio. i don’t know if that’s a typical thing, but that’s my experience. Either way, you probably want to start building a portfolio if you would like to get into freelancing. Another thing that I noticed: It was waaaaay easier to find a job during my time in Australia. Not so much luck in Germany for me personally. I’m not sure if it’s because the market is perhaps smaller here, or if it was simply because of a generally more “strict” attitude here... (I don’t have a degree, just a portfolio.)
  4. LifeIsGood

    A Novel Approach To (Non-Manifold) Dual Contouring

    I want to deform meshs in realtime, so while a precomputation of a general mesh is fine, it should be the same possible in realtime. But yeah, not really working on this algorithm anymore, anyways.
  5. After my first (semi-failed) algorithm, I started to think about a new approach. The idea was to utilize simple mechanics such as Ray Marching to extract a polygon mesh from a signed distance function (SDF). So, this is what I came up with: The algorithm is divided into 2 separate steps. Ray Marching (or what I call in this case "Ray Sampling") and Mesh Construction from said samples. Ray Marching. Ray march the "scene" (i.e. the SDF), most likely from the player's perspective, on a low resolution. I used 192x108 mostly in my tests. Current GPUs have no problem whatsoever to do this in realtime. Instead of saving the color at the "hit point", as usual when ray marching, I'm saving the point itself in a buffer. Accompanied by the normal of the SDF at that exact point. What we end up with after the first step, is a collection of 3D points that resembles the SDF ("samples") & the normals at those positions. Mesh Construction. Construct a polygon mesh from those samples by simply connecting neighbouring pixels with each other. Lastly, scale up the mesh to account for the low resolution that we have used when ray marching. (I haven't done this yet in the images/videos you can see at the bottom) I think the results look quite good. There's problems that I'm still trying to solve of course, such as this weird aliasing (yes, I do know what the root of that problem is) It currently runs at about 40-70 fps, or takes somewhere between 10 - 25 ms per mesh. (Only the 1st step is parallelized & I haven't done much to optimize the algorithm) The Pro's No complex, underlying data structure such as a voxel grid Can run in realtime with no problems, especially if optimized No Level-Of-Detail required, which is one of the most painful things when writing a voxel engine. The mesh is as detailed as the image constructed by the Ray Marcher. (Which is pretty good, it's just small! Scaling up a complete mesh works way better than scaling up an image ) Enables sharp features, caves etc. (because, duh, it's ray marching.) Completly relys on SDFs (2D - "heightmap" or even higher dimensional SDFs) Meaning, we could deform the mesh in realtime by applying simple CG operations to the SDF. Infinite terrain for free! (We're only rendering what the player can see, if the SDF is "endless" so is our terrain) The Con's Right now, there's no precomputation. I'm thinking about the possibility of precomputing a mesh by taking "snapshots" from different perspectives. However, at the moment, it's all realtime. Only creating a mesh for what we see also means that AI etc. that is not close to the player has no mesh information to rely on. I don't know yet. Will update more con's when I find 'em. Maybe you have some ideas ? Results! All results have been generated using a simple SDF consisting of 2 sinus curves. A huge terrain constructed by taking "snap shots" from above. The same mesh in wireframe. Wireframe close up.
  6. For the sake of "completness", my first entry is about the very first algorithm I came up when I was thinking about new solutions to procedural meshing / extracting a polygon mesh from implicit geometry (e.g. from a signed distance function, SDF) You can find out more about it in this thread right here. At first, I liked the idea. However, the more I worked on the algorithm, the more I found characteristics that I dislike about this approach. You can read about the pro's in the thread linked above, so here is the stuff that I dislike now: The algorithm is a typical "voxel" algorithm. It relies on a 3D grid. It may suffer from floating-point imprecision It lost it's simpleness. The idea behind the algorithm was to find a simple alternative to DC. This is still very true for the 2D version of the algorithm, but for the 3D version, not so much... I had to account for more & more "special cases" during the development of the algorithm, resulting in an algorithm that wasn't simple enough anymore for my taste.
  7. LifeIsGood

    Looking for C# programmer, Unity

    Hey, I think it would be pretty cool to see some of the stuff you've done / worked on
  8. I agree. Politics is simply a topic that emerges wherever people come together. I don't see the solution in banning it from the forums. However, what I will say is, that it has been way too present at the main page. I do disagree with taking it entirely from the main page as it is content that belongs to these forums as any other. What I wish, is that political topics are a bit more limited on the front page though. Those threads tend to get more frequent answers than most other threads (especially when it gets a little heated) If there's 10 answers to that thread, it shouldn't pop up 10 times a day on the front page. Some sort of display restriction would probably prevent the main page from being spammed with those replies.
  9. LifeIsGood

    Old School VS Ray Tracing accelerated by GPU

    Sorry, but that article is pretty senseless. First of all, ray tracing is considered a general term for algorithms based on, well, tracing rays. "Normal" ray tracing, which only handles direct light certainly falls into the category. So does Path Tracing, which adds an approximation for indirect lighting. So does Ray Marching, which also considers non-solid matter. It is a fix. Not to make an awesome game out of a shit game, but for exactly the features that he named. Reflections, refractions, hard shadows. All in realtime. That's the reason why we will see hybrid renderers for the next couple of years or decades, not pure ray tracers. That being said, it's a first step towards more sophisticated algorithms such as path tracing, which relys on the same principles. Sending out huge amounts of rays. Running a lot of intersection routines. Hardware needs to be adjusted for that, which is starting to happen now. That's just a stupid point. Of course we won't simulate photons. It's nothing but a waste of resources. That's also not true. GI in games is often based on some form of path tracing. For example, Unity uses path tracing for their light mapper. That's why we have seen all those new denoising algorithms coming up the last couple of years, to make some form of path tracing feasible. Now, of course we're cheating, and more or less of the quality of a path traced image is lost through denoising. But it's still already some form of it.
  10. This topic reminds me of the principles (or whatever you want to call it) of Facepunch studios (https://wwww.facepunch.com/about/) One of them being I haven't worked there. So, I don't have personal experience and I don't know if this would also work for bigger teams, but they seem to do fine.
  11. LifeIsGood

    How much longer can Trump/Trumpism last?

    I don't see why you are sorry for this somebody. Your country has modern, legal ways to make somebody who lives in the U.S. an American. This person is part of "the people" just as any other person living there. So, that's Trump to you ? Don't you see that he's cutting relations with whole europe, which has been the biggest partner of the U.S. since WW 2 ? You have ripped that quote out of context. This is not about america being the bad country with this kind of history. This was in reply to Buffo's statement, who claimed that the U.S. was doing great until about WW 1 & is now deteriorating. However, even if it wasn't completly out of context: 2 wrongs don't make a right. "The people" have a responsibility to uphold for the comming generations. It is your responsibility to remain critic about your country's politic, and to acknowledge mistakes that have been made so your country can continue improving. This is the whole idea of democracy.
  12. LifeIsGood

    Should I depart from my game project group?

    The choice you should make is pretty obvious to me: Get out of that team. You are literally just burning your time. Many of those hobby projects will be led by people who want to see their game realized but are not ready to contribute any work. And those projects will fail sooner or later. There are new projects posted by startup teams here everyday. Find one that actually wants to work with you.
  13. What ? You mean you have run into performance problems because of something like that ? That doesn't sound likely at all. All vector * float really is, is: public static Vector3 operator *(Vector3 lhs, float rhs) { return new Vector3(lhs.x * rhs, lhs.y * rhs, lhs.z * rhs); } Apart from that, that code snippet isn't too bad. If you're working with the separate components instead of directly using the constructor, that's really just style at that point. ("this" is pretty redundant though, yeah.) Btw. That's "Javascript" or rather UnityScript right there. Doesn't have too much in common with Java.
  14. LifeIsGood

    A novel approach to (non-manifold) Dual Contouring

    I have adjusted the algorithm a little to address the problem with sharp features like corners. If the vertex has been smoothed out, I'm pretty much just taking the smooth vertex, averaging all the normals together (let's call this new vector A) and interpolating from the smooth vertex position in direction A to find a point lying on that line, where SDF (point) = 0. Also, I had to add a little bias to the new found vertex, but I guess that's just precision problems since I'm using floats right now. The average of the normals is represented by the black lines in the video. https://www.youtube.com/watch?v=C8s3rpk4pZw&feature=youtu.be I'll have to do some more testing to see if this new solution works for the general case.
  15. LifeIsGood

    Unity dropping Monodevelop a let down for small indie?

    That sounds pretty weird. My guess is, that it's simply not economic to continue the support for monodevelop.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!