ArrayList PCHFiles = new ArrayList(); ArrayList NormalFiles = new ArrayList(); ArrayList Libraries = new ArrayList(); ArrayList Executables = new ArrayList(); for (int i = 1; i <= b.BuildDependencies.Count; ++i) { BuildDependency d = (BuildDependency)b.BuildDependencies.Item(i); VCProject project = d.Project.Object as VCProject; Configuration active = d.Project.ConfigurationManager.ActiveConfiguration; IVCCollection configs = project.Configurations as IVCCollection; VCConfiguration cfg = configs.Item(active.ConfigurationName) as VCConfiguration; if (cfg.ConfigurationType == ConfigurationTypes.typeStaticLibrary) { Libraries.Add(cfg); } else { Executables.Add(cfg); } foreach (VCFile f in (project.Files as IVCCollection)) { IVCCollection fconfigs = (f.FileConfigurations as IVCCollection); VCFileConfiguration fcfg = fconfigs.Item(active.ConfigurationName) as VCFileConfiguration; VCCLCompilerTool tool = fcfg.Tool as VCCLCompilerTool; if (tool != null) { if (tool.UsePrecompiledHeader == pchOption.pchCreateUsingSpecific) PCHFiles.Add(fcfg); else NormalFiles.Add(fcfg); } } } // build foreach (VCFileConfiguration fcfg in PCHFiles) { fcfg.Compile(true, true); } foreach (VCFileConfiguration fcfg in NormalFiles) { fcfg.Compile(true, true); } foreach (VCConfiguration cfg in Libraries) { cfg.Build(); } foreach (VCConfiguration cfg in Executables) { cfg.Build(); }
- Details
- Written by Chris Savoie
- Category: Update
- Hits: 2946
So during my break I'm going to see if I can whip together a simple Add-in for Visual Studio that simply re-orders the build process and forks off multiple threads. Stay tuned!
- Details
- Written by Chris Savoie
- Category: Update
- Hits: 2806
Using C# in Visual Studio 2005 is also really great. For a most part I can program while I'm running. If I don't like how something turns out I just set a break point and modify the code and continue running. You can pretty much modify anything within a function. It won't work if you try to add functions to a class though. I'm not sure of the exact restrictions, but it is amazing none-the-less. The refactoring tools in 2005 are also really nice. You write a big algorithm and you want to move it into a function, just create a prototype before your algorithm, pass in the parameters like you normally would, right click and select 'Create Method Stub' and it creates it just below the current function with all the parameters properly typed and named. Then you just move the algorithm and you're done.
Finally DockPanel. This little library started as a CodeProject article and since moved into a source forge project. It's great and you can very quickly and easily create a setup very similar to Visual Studio 2005. It really makes your app feel professional in no time. Add to that the new Menu/Tool/Status Strip classes in .NET 2.0 and development is quick and easy.
- Details
- Written by Chris Savoie
- Category: Update
- Hits: 2811
- Details
- Written by Chris Savoie
- Category: Update
- Hits: 2869
I have an update sooner than expected. I was looking into noise functions today and it was pretty easy to implement. What I'm showing today is a greyscale 3d noise using the point normal plus (1,1,1). For some reason simply using the normal gives a horrible blocky result. What I have right now is extremly slow. At 6 octaves with smoothing and interpolation it takes a couple minutes to generate 4 256x256 textures. The really nice bonus the edges match up perfectly.
I think for the next step I'll apply this to the subdivision scheme and see if I can get a transition from space to ground.
- Details
- Written by Chris Savoie
- Category: Update
- Hits: 2609
- Details
- Written by Chris Savoie
- Category: Update
- Hits: 2445
Good news: Have an algorithm that generates a texture based on position info. Once I create a nice function to procedurally generate height, also based on position info, I can use the same function to generate the texture that will be seen from high up and seemlessly blend into the tiled terrain. Atleast that's the plan.
Bad news: That damn seam. Not sure why but for some reason the edges seem to be wrapping by one pixel. I've outputed the generated textures to file and they are fine so the problem isn't there. I'm too tired to figure it out now.
- Details
- Written by Chris Savoie
- Category: Update
- Hits: 2663
Quick update. I've made converted the plasma heightmap generation to work with on a sphere. I've set it up so it creates 4 textures, one per quadrant (as seen on the bottom of the screenshot). It's mapped in a wierd way that skews it a bit but it seems to look fine from space.
Bonus: In the edges you can see the patching at work. It's really easy to determing which patch to use, I can just test each edge and shift a bit up and add it to result and the final number is simply the index of the index buffer to use. (e.g. if edge 2 is at a lower level I just use index buffer 2, if 1 and 2 are lower I use buffer 3).
- Details
- Written by Chris Savoie
- Category: Update
- Hits: 2574