Sunday, January 31, 2010OpenCL Particle System
During the past week I’ve been doing a lot reading into OpenCL demos. I’ve also began working on the prototype for milestone 2. The application so far shows a small window with a decent amount of particles moving along in a given direction. It’s also possible to move around using a free cam. The particles’ positions are updated on the GPU using OpenCL.
To render the particles I’m currently using a VBO, with its vertices-array set to the positions of the particles, and then rendered using GL_POINTS. They may also be drawn by sprites, if wanted. This method is quite sufficient in regard to performance, but might not be the optimal approach for my project. This is because I’m not quite sure how to apply transformations (rotation and scale) to the points, and secondly it would be pleasant to have the particles rendered as meshes instead of sprites. I’ll go through with this for now though, and might go back and revamp it later.
In aspect of the time-schedule it seems that my project is going well so far, and there have been fewer problems with getting started than expected, which seems promising.
For the upcoming week I’ll be focusing on adding attributes to the particles – e.g. lifetime, direction etc. I’ll also start thinking about how to calculate attractive forces between them, without making it too computational intensive.
Saturday, January 30, 2010Game Demo AI Programming
Finally got my AI book: AI Game Programming Wisdom 4 by Rabin, Steve, so this week I spend a lot of time reading, got a lot of really good information about nav-meshes so I could finally start implementing it. Only had the time to create a few classes and plan what they are going to do but I think I got a plan for it now.
Nebula 2.5 hates me =( They have changet alot from nebula2 and that have created some problems that have slowed me down somebut I did some progress, changed the camera controls from maya style to “free flight” style which is what we plan to use in the final presentation. Did some more performance testing and the conclusion is that my gpu is really bad (getting a new one soon thou =D ). The plan now is to have about 200’000 triangles in the scene 100’000 on the environment and about 10’000 on the character, with two teams of five it sums up to 100´000 on the characters.
Worked yesterday on getting access to the triangles in the environment mesh but they have made some changes to that from nebula2 so it didn’t go as well as I had hoped, this is now top prio and I will try to get some work done over the weekend with this.
This week I have done some more research about udk ( unreal development kit). How to export meshes and textures from maya to udk. Also started with a simple base mesh for my tiger tank.
Friday, January 29, 2010Character modeling and texturing
I´ve been sculpting all week trying to look at my reference pictures and figure out how the muscles would look for my pose.Today I also started lighting and shading tests.
Character modeling and texturing • Add comments (0)
I put the three or more legged character at side and focused on a more humanoid character design, believed that it will be too time consuming and risky to project timeline.
If time allows I do a very easy design on a three legged spy robot, very similar to a tripod in classic movies “War of worlds” and “Invaders from Mars”. Just for testing to do a custom rig and animation.
I have done some quick concepts on the second character, haven’t made many parts as for the first character. Reason for that is I want to leave it opens for changes under modeling phase and tried to push my concept speed to be quicker and not stuck too much in details.
Possible Problems / Solution
This week problem is timeline, It did take longer to do base mesh for character 1. I overestimated my knowledge over few things. I will catch up this delay in this weekend so this will not impact my plan.
What to do next week:
• Build a Base for character two
• Detail Work for High polygon character two.
• UV Map for High polygon character two.
Character Creation for Game / Cinematic • Add comments (1)
I have tested application embedding and communication, it has been very straightforward to set up and it works like a charm. This covers the core part of my project until the second milestone, what’s left is some additional testing and the designing of the system before implementing it.
Next week I will test the features for milestone 3, I have now a list of features so I got something to work with.
A C# app sending and receiving data with a C++ Nebula application.
Embedding only by using a small parameter in a Nebula test viewer and a simple C# application.Game Character Creation
What I Have Done This Week:
This week has ended at the summary is that i have almost done a whole base mesh. i have concentrated mostly on the face to block out the mouth shapes and the nose, i can say that it takes some time to get the face on the character that you want, but the rest of the body is pretty fast to make. Then have checked out more about the UT3 engine and read about it’s content in particular the overview what’s can be done in it. Have also downloaded the UDK kit. Then i’ve been drawing on the final concept picture that should be delivered next friday. I mostly done this picture because to get a whole feeling of the character i’m making…
Next Friday (MSII)
The finalization of my concept on the character. Dive into tutorials about UT3 engine and try it out. i will begin with the import export part how it works and if ithere’s any problems. And the finalization of the base mesh on the character…
Creature Modeling for Film Production
This week I have just been testing different things, like programs that I will use. Some programs and techniques are decided.
I have been warming up a little bit in Mudbox, and I worked on just a rough mesh of the turtle. I basically just wanted to do it to be able to try some tracking, etc. The only tracking I have tested so far, though,
is with Fusion, haha and it’s so simple and bad but very funny looking!
I also think that I have found the perfect spot to place the turtle in. I’m not 100% sure of it, and I would appreciate if someone gave my any ideas of locations, or ideas about what ever.
On monday I will try just some more things, then I’m off to modeling!
Here are pictures of my model so far. One is a rough model from Maya, and the other one is just a test sculpturing in Mudbox.
The video is the hilarious tracking test I did…
Have a nice weekend/Eve
Creature Modeling for Film Production • Add comments (0)
This week i have been trying out nebula. I have been testing the different shaders. I was pleased to find out that nebula supports layered shaders.
It will help me a lot when i texture the big areas in the level. I have had some problem with lighting. The lights in Nebula don’t behave as I’m used to, but I’m sure I will solve it. I have also created some plantgroups and started to model some objects for the level.
screenshot from my testscene in Nebula.Beyond the Frame
Another week has passed and the base mesh for everything is now finished. Next week we will start uv-mapping and start with the more detailed modeling.
We will also throw up a previz soon.
This week I’ve done a simple model that I’ve given to Magnus for rigging, and have also begun modelling a more throughout model where I mind the edge flow and curves of the body more, I anticipate it to be done by next week so that Magnus can start the skinning process. Everything’s on schedule right now, and I’ve even had time to make a quick test to see what a simple cube with a normal map would look like in nebula; it looked as expected and worked fine which is nice to know.Game Demo Animation
I spent this week attempting to learn the animation system of nebula, and this is where I encountered my very first problem. It proved to be harder than expected, changes were made from previous versions and thus rendered my few tutorials and previous knowledge useless. This will hopefully be resolved early next week. I have also begun working on the character rig, as I received an early model from my group member Anna. It should be done early next week.Peasant Village, Visual effects in live action
Today I have been working on a snow shader. This shader will be used in several clips like where we are going to change the environment.
I have a polygon plane which is displaced with a texture. The shader itself is made with a blinn shader. Color is mapped with a ramp which is driven by the facing ratio. This there is some slight variations in the shading depending on the viewing angle. To get the micro specular highlights which you can see in real snow I have connected a granite texture to the incandescence. That one is also driven by the facing ratio. To the bump I have connected a 3d fractal to give some more detail. Then there is just a little bit of dark blue in the ambient.
Peasant Village, Visual effects in live action • Add comments (3)
We spent the most part of the week filming at location and viewing the material. We tried to get all the shots done in one day, which was extremely optimistic. The storyboard helped us to be as effective as possible during filming and by the end of the day we had all the material we needed. We now had to focus on deciding which scenes to save and which to cut. There are 2 scenes in the short film that are absolutly essential, so we made it our next goal to get those scenes tracked and tested. A process we can begin with next week.
In order to test the scenes properly we need to have all the texturing done before combining the material. Therefor we spent the last two days UV-mapping and texturing.
We also experimented a bit more with the explosion, combining different particles (hw, sw, fluids, and fusion 2d particles) to get a better idea of the work that is ahead of us.
Shortfilm, helicopter explosion VFX • Add comments (2)
What did I plan to do this week?: This week was going to focus on setting up an implementation of a simple CLR program that was using the Nebula3 engine to render a demo scene that came with the SDK. I was also going to try diffrent approches of how to implement the communication between the CLR process and Nebula render process.
What did I actually do?: I spent the first days trying to compile managed CLR code together with unmanaged Nebula code using the preprocessor to distinctive the different parts. This approach gave a lot of problems when the compiler came to the Linker stage. The problems can be summed up into that it complained about that the Nebula library files was compiled with a different native then CLR applications.
So I decided to try from the other end, making an Nebula application that was going to be costumed to listen to commands from the CLR process. This however had other problems. First I tried to create a empty Win32 project setting up an instance of Nebula but in the end got the same native problem even when I used the exact same source code a working sample project that came with the SDK. From here I decided to copy a sample project from the SDK and just modify it into what I needed. This worked fine of course and the reason it did is that I noticed why now that the sample projects uses a custom set of build rules. I haven’t spent any time going through what this does to the compiling process, but perhaps modifing in this file might have gotten my first CLR ompile to work. So I have a working Nebula code that is ready to be used.
I have also looked through the source code of Nebula and done some more research about the approaches I posted in my last blog. And I am considering to make the process communication through sockets. Why? I noticed that implementing a Shared Memory would take about more work both the DLL implementation but also the modification of the engine. Though it’s still a possible solution to fall back on since it’s the best solution to move a lot of data between processes. Not that much moving much data is critical for this project.
Another approach was to use inter-process communication, this works by using the operative system message system to send messages between processes. The problem with this solution is that this requires that I need to modify the WinProc function inside Nebula in order for it to process my messages, which isn’t an optimal thing to do and I might need to make more modifications then I can make out right now. But it is a good solution since the communication in my project is mostly only going to be small messages.
The last solution is to make the same type of implementation but to send the messages through sockets. The good in this solution is that Nebula has a built in support for tcp communication and I could just implement a support to process the messages I need to send. And this solution makes it possible to even run Nebula on one computer and the CLR tool on another. So this will be the implementation of my chose.
What will I do next?: Next step will be to make a implementation of the process communication through sockets with the CLR process and the Nebula program. And also take a look at the implementation of HDR (yes I have decided to switch the plan of the next 2 weeks in case the process communication takes to much time and HDR is a higher priorities shader to implement).
Shading for Real-time Applications • Add comments (0)