Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Everything posted by gdecarp

  1. I open-sourced a Unity3D library & demo that shows how to plan and move a ballistic projectile targeting a (moving) target under the influence of air resistance and (constant) wind. Trajectory plans can be calculated to hit a specific target with: a given initial speed, a given flight time, minimum initial speed/energy, or (experimentally) given the constraint to shoot over other obstacles in the scene, and more. To do so, it doesn't simulate the trajectory directly using Unity's physics simulation but rather closely approximates it analytically using the formulas presented in my paper "Analytical Ballistic Trajectories with Approximately Linear Drag". Because of this approach, it's fast, completely deterministic, exact and frame-rate independent.The code may be used freely for commercial and non-commercial projects.     A web player version of the demo can be found here.  See http://www.decarpentier.nl/ballistic-trajectories for more info.   Enjoy! Giliam
  2. Using a virtual camera with a large FOV can cause objectionable distortion near the screen’s edges. The article at http://www.decarpentier.nl/lens-distortion introduces a novel barrel distortion post effect that may be used to reduce stretch in this case. The effect can be controlled through multiple tweakable parameters, and requires only 2 additional instruction slots of a post effect’s fragment shader.  Before: After:   It also contains a link to an open-source Ogre3D and WebGL example to play with the effect in real-time.   Giliam de Carpentier www.decarpentier.nl
  3. gdecarp

    C++ Plugin Debug Log with Unity

    Hi Hojjat. Exactly what I needed, and got it to work in no time. And personally, I think the writing is clear enough for anyone that's already somewhat familiar with basic C++ Unity plugin writing, Thanks!
  4. In case someone’s in need of efficient math and code snippets to let projectiles hit a target exactly (even with wind and approximate drag), have a look at this paper. (An open-source demo for Unity3D is currently being developed as well.)   http://www.decarpentier.nl/ballistic-trajectories
  5. To those who are interested in modelling heightfield and/or GPGPU techniques: I just released the free binary and all of the source code for the Scape terrain editor prototype at www.decarpentier.nl/scape. Scape allows the user to 'paint' complex and natural looking terrain in real-time by using the GPU to not only render but also to edit the heightfield using both common and novel procedural algorithms, Enjoy! Giliam
  6. gdecarp

    Open-sourced the Scape terrain editor

    Hi Samoth. Thanks a lot! Btw, I totally agree with you on the menu side. That's far from polished. But the navigation and radius controls are actually quite user-friendly, if you know the right buttons. Be sure to check the userguide under the /Docs folder on this one. And if you really don't like the default keyboard/mouse mapping, you can customize it by editing /Bin/Settings/ButtonDefinitions.xml as well. Good luck!
  7. Hi again. If you're looking for more implementational details, I've released the full source code of the project that was the basis for the procedural noise articles, as well as my paper on Scape that was previously only viewable by ACM members. If you're interested, see the latest article on my blog.
  8. Scape is a non-commercial terrain editor I've developed as part of my thesis work in 2008. I've started writing about a few month back, and just posted a new article on its brush-based editing pipeline that's used to edit heightfields procedurally using brush strokes as input. Some of these brushes are implemented on the CPU, while others use the GPU to do the heavy lifiting. As the series covers quite a lot of interesting technical graphics details and includes a number of working open-source procedural noise code snippets, I though I'd share it here as an hopefully useful source of inspiration and reference to others. The latest article: http://www.decarpent...-brush-pipeline Regards, Giliam
  9. Thanks! To get an idea of what it's capable of, you could have a look at the demo clip as well (recorded from a machine that's now already 5-6 years old):
  10. Hi, I wrote another article on procedural terrain generation, covering two novel algorithms. The second algorithm one wasn't covered by my thesis yet, so that might be of interest to you as well. The article: http://www.decarpent...ural-extensions An FX Composer project implementing these algorithms (as pixel shaders) can be found there as well. Regards, Giliam
  11. Glad to be of help. I originally wrote that code as part my own master thesis on procedural terrain a few years back. But perhaps then, you'll find that original thesis useful as well. And it does contain a large number of references. You can download it from the Downloads section at http://www.decarpent...nl/scape-render (another related article, focusing on efficiently rendering (edited) terrain).
  12. Hi Hyu, I'm not sure what kind of geometry you're talking about, but i just wrote a (technical) article on my blog on using procedural noise to generate heightfields on the GPU. http://www.decarpententier/scape-procedural-basics It also includes an FX Composer project to experiment with the explained algorithms. I hope you find it useful. Kind regards, Giliam
  13. Hi everyone, A couple of years ago, I did a project on viewing 3d models as SIRDS in real-time. So, in case someone would like to know more on how SIRDS works, or would want to play with the many tweakable settings in the demo, or would simply want to view/use the C++ code, check out my article. www.decarpentier.nl/sirds It uses DirectX to continuously render any .X model from any angle as either a depth image or a SIRDS image. To create the SIRDS images from the Z-buffer images each frame, it first loads the rendertarget into main memory, then transforms the image into a SIRDS using a repeated, but constantly shifted, block of randomly colored pixels, and lastly, it uploads it to video memory again, and is rendered as a quad. Enjoy. Kind regards, Giliam
  14. gdecarp

    Boids - reasonable neighbourhood

    Hi everyone, A while back, I wrote a boid implementation that originally did the same thing as Reynold's algorithm. But what I didn't like about the original model was the boid's tendency to group into similarly sized flocks, with the average flock size depending on the number of boids being searched for in the boid's direct neighborhood. I ended up changing a few details of the algorithm and that allowed me to search for only for 3-4 boids, while supporting formation of larger flocks than before. So I thought I'd share how. The trick was not to change to original behaviour model (although I did some tweaking there as well), but to change the selection method of which boids are used to calculate the steering behaviours' responses from: Pick the closest 2-3 neighbors (so I use a small fixed number, not a fixed max distance) AND 1 (distant) boid that is nearest to at least a couple of times (e.g. 6x) the distance of the closest neighbor. Loosely, this means something like: be sure to respond to changes/problems in the direct vicinity, but also look for some other closeby flock you'd be interested to join over time if there's no immediate problem. Another thing that helped my simulation was the addition of a some non-linearity in the behaviour's responses, making the responses less spring-like, and therefore less prone to ongoing natural oscillations. A more elaborate explanation, as well as a video, the C++ source and binary can be found here: www.decarpentier.nl/boids Regards, Giliam de Carpentier A screenshot from the demo:
  15. gdecarp

    Physics Contraints Help

    Hi Chrispytoast, A couple of years ago, I wanted to know more about physics constraint myself, and dove into the publicly available Doom 3 code to see what was going on there. Afterwards, I wrote an article about physics constraints for this engine (and possibly others). It's more about defining (new) constraint types, and understanding how they're being solved by id's solver, and not so much about writing a constraint solver yourself, If you're interested in reading it, have a look at http://www.decarpentier.nl/armed-mine. Good luck with your project! Giliam
  • 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!