KatsBits Community

Technical WIP

kat · 35 · 79773

0 Members and 1 Guest are viewing this topic.

Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 3148
    • KatsBits
In of itself that's quite fascinating to just sit and watch.


Offline ratty redemption

  • VIP
  • Hero Member
  • *
    • Posts: 1031
    • ratty's deviantart pages
@carnage, are you saying your nornalmap there will be able to update itself in real time? if so that sounds very cool, and have we seen this before in game engines or is that too gpu intensive?


Offline carnage

  • Defunct
  • Newbie
    • Posts: 40
@ratty. The simulation actual uses a height map that requires one draw pass to update it. I am then using a second pass to convert the height map into a normal map witch is more useful for rendering a watery surface, as its more about the reflecting light.

To control the map you simple paint onto the current frame with any colour greater than black, then over the next frames these areas will form ripples. The algorithm even supports effects like waves bouncing of solid surface (although there are notany in that video)

And its actually very GPU efficient. The algorithm is quite cheap as its doesn't use any trigonometry, and lends itself to the parallel nature of GPU. It also has a constant performance regardless of how many ripples are in the system. As a final bonus, the height map texture is scaled up 8 times as part of the algorithm, so for this 1024^2 pool, a 128^2 source height map is required

@kat. I am probably spending too much time watching it when I should be programming it


Offline ratty redemption

  • VIP
  • Hero Member
  • *
    • Posts: 1031
    • ratty's deviantart pages
@ carnage, understood all that i think all well done *thumbs up*


Offline silicone_milk

  • VIP
  • Full Member
  • *
    • Posts: 172
    • My Portfolio
Did you write this with GLSL? You might be interested in checking out OpenCL. We talked about it a little bit before :)

It feels pretty damn close to writing in C.

Good stuff btw. Lets see those ripple effects re-purposed for flowing blood down walls  8)


Offline carnage

  • Defunct
  • Newbie
    • Posts: 40
unfortunately the algorithm only simulated horizontal surfaces so no blood. I wrote it in HLSL and that's pretty close to C anyway. I have looked at CUDA and other GPGPU but they are not all-ways optimal for graphics stuff


Offline silicone_milk

  • VIP
  • Full Member
  • *
    • Posts: 172
    • My Portfolio
Aw :( Rotate it 90 degrees then we can have some gore! :)

Haven't looked in to CUDA much only because it was highly restricting (only working on NVIDIA cards). OpenCL, however, was developed as a kind of "sister language" to OpenGL and they mesh quite well together.

Really, the main thing I like about it (and the reason why I keep pushing it on you) is that you only write a single set of almost-identical-to-c code and tell it which platform to target. The compiler creates the binaries for the platform(s) you want to use so you don't have to worry about writing multiple slightly different copies of the program.

Not to mention, it's cross-platform. Runs on OSX (Snow Leopard), Linux, and Windows. Can be compiled to execute on multiple CPUs, GPUs, and DSPs (Digital Signal Processors) or a combination of. There's also rumors that PhysX chips will be added to the list as well :)

For me, the major downside is the lack of recursion :(


Offline carnage

  • Defunct
  • Newbie
    • Posts: 40
I do like the idea that CL is platform independent and can fall back to CPU. However in my case of writing really only graphics shaders CPU fall-back isn't an option anyway. I understand that CL remove a lot of the limits of HLSL or GLSL making it easier to do non graphics processing without having a limited number of memory reads etc.

But again if im writing a real time shader if I have reached these limits is probably already too expensive. I could potentialy see myself using it for trying to optimise some programs like the terrain generation tool etc, but that will probably come after the algorithm is locked down on CPU, then port it over to GPU. Kind of like your q3map3 project


Offline silicone_milk

  • VIP
  • Full Member
  • *
    • Posts: 172
    • My Portfolio
Been about a year and a half since an update? Whoa.

Still getting stuff done slowly but surely. q3map3 is still in the works. Programming articles are being typed up for facebook, opencl, and random tidbits over at my guineacode site.

My current project I started today which I'm trying to have a working prototype of by this weekend is a Google Docs type of thing similar to the Word clone they have.

Except this will be designed around the concept of branching. It will reflect the thought process I find to be pretty common - going off on tangents when one idea suddenly inspires another.

The idea is to have a web-based text-editing app that lets you branch off in mid-paragraph by declaring an anchor and a new document (or 'thread') will branch off letting you elaborate on a new idea and treating it as an object you'll be able to move around, show/hide, clone, further branch, etc...

One of the main parts to facilitate this is an idea I had tonight where you can select a portion of text and make a reference to it. This is almost identical to copy-pasting to a new document. However, every section you paste the reference to will automatically update itself whenever the original text gets changed.

I intend for this to be multi-user like google docs so multiple people can edit at the same time which will make this branching thing all the better so people can non-destructively build and add on to an idea somebody else is writing on to.


Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 3148
    • KatsBits
That sounds like an interesting [project]. Web or client based? Where do you securely store users generated files and such and/or how are you allowing secure connections between users and/or into the app itself?


Offline silicone_milk

  • VIP
  • Full Member
  • *
    • Posts: 172
    • My Portfolio
web-based. Since this is just a little experimental project documents will be stored server-side for now.

Connections - I was originally looking at an AJAX based approach to multi-connection editing on a document but my attention shifted last night to WebSockets with node.js and socket-io


Offline silicone_milk

  • VIP
  • Full Member
  • *
    • Posts: 172
    • My Portfolio
Have client-side word-like rich text editing going on now. Just need to find some time to set aside to get multi-user editing happening.


Offline carnage

  • Defunct
  • Newbie
    • Posts: 40
Hi guys, haven't been posting on here for some time. The PhD is taking up most of my time. I have implemented another version of the fluid simulation video I posted on here some time ago. Its a horrible recording of the screen, but I cant get any screen capture software to work on this system at the moment. Enjoy.

http://www.youtube.com/watch?v=VQMaPoJiywA&feature=colike

Also, I tend to more on Twitter these days so if anyone else is posting work on there add me @Milkybkid


Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 3148
    • KatsBits
Looks interesting but yeah, capture makes it difficult to see what's really going on. If you can't install Fraps (best) or CamStudio(slower capture) try and prop the camera on or against something solid like a thick book (don't hold it in your hand) and then angle the screen so it can be seen clearly (or visa-verse).