Clootie graphics pages

Home | Articles | Projects | Delphi | C++Builder | TMT pascal | Links | About
  

News archive
1st Half of 2003

 << 2nd Half of 2003 2nd Half of 2002 >> 
  
  31-May-2003
DirectX SDK examples 
I thought I need to update site at least once per month :-(
So this is it:
LightingVS image The LightingVS sample is an extension of the Lighting sample that adds vertex shader implementations of lighting. It lets you add multiple lights and compare the output and performance between the vertex shader lights and the fixed-function pipeline lights.
  30-Apr-2003
DirectX examples 
MeshHierarchy image Added new custom sample: MeshHierarchy.
This sample shows how to load and save hierarchical meshes using D3DX9 functionality. Sample can load and save not only "standart" data but also custom (user supplied) data.
Sample was used as testbed for testing correctness of D3DX9 header conversion for support of animated / hierarchical meshes. But final decision was made what there are definetly some bugs hinded inside D3DX9.0 implementation. Or I'm really mad - in that case mail me.
Demonstrated bits: inheritage of TD3DXFrame, ID3DXAllocateHierarchy, ID3DXLoadUserData, ID3DXSaveUserData and usage of D3DXLoadMeshHierarchyFromX, D3DXSaveMeshHierarchyToFile.
  29-Apr-2003
DirectX SDK examples 
SkinnedMesh image Uploaded SkinnedMesh sample. Althrow this sample animate the same "walking figure" as the DirectX 8.x instances of it sample is changed a lot inside. Now sample uses new functionalify of D3DX to parse and animate skinned meshes.
  28-Apr-2003
DirectX SDK 
MS DirectX SDK I'm presenting April release of DirectX 9.0 headers for Borland Delphi!

  List of changes:
  • DirectShow9.pas
    • Finally included latest version of Henri Gourvest DirectShow9.pas!!!
  • Direct3D8.pas fixes:
    • IDirect3DDevice8.CopyRects
  • D3DX9.pas
    • Added possibility to link with only required subsets of D3DX9 library. You should define "D3DX_SEPARATE" conditional define to archive this. Separate parts of D3DX9 are provided throw new ZIP archive: Clootie_D3DX90_Sep_dlls.zip (search for it on Delphi DirectX9 SDK page). Note: if you are using most/all of D3DX9 library then it can be more size effective to link to D3DX9 as the single DLL (1.5Mb) compared to size of all "separate" DLL's (3.1Mb)!
    • Added D3DX9 helper functions for conversion of vectors to/from 16/32 bit precision floating-point numbers (like D3DXVector3_16fFromVector3, D3DXVector3FromVector3_16f).
    • Fixed: D3DX9ab.dll - now exports D3DXCreateEffectCompiler function
    • Fixed: ID3DXInclude
    • Fixed: ID3DXLoadUserData, ID3DXSaveUserData
    • Fixed: ID3DXAllocateHierarchy
    • Fixed: XSKINEXP_TEMPLATES
    • Fixed: ID3DXSkinInfo.ConvertToIndexedBlendedMesh
    • Fixed: D3DXColorFromDWord implementation
  • DirectPlay8.pas fixes:
    • IDirectPlay8LobbiedApplication.GetConnectionSettings
    • IDirectPlay8Peer/IDirectPlay8Server.SetGroupInfo
    • IDirectPlay8Peer/IDirectPlay8Server.Host
    • IDirectPlay8Peer/IDirectPlay8Client.Connect
    • IDirectPlayVoiceClient.Connect/SetClientConfig
  • DirectSound.pas
    • Fixed: IDirectSoundBuffer8/IDirectSoundCaptureBuffer8.GetObjectInPath
  • DirectMusic.pas
    • Removed contents of dmksctrl.h (IKsControl and surrounding definitions) as they are currently defined in DirectShow9.pas
  • Package: Due to more size effective compression ratio now full DirectX Headers package (Clootie_DirectX90.zip) is redistributed as WinRAR SFX archive (650Kb compared to more whan 2Mb in ZIP format). But Clootie_DirectX90_Small.zip archive containing only JEDI version of headers is still redistributed as ZIP archive althrow now it's not smaller when full version!
  • And probably some other fixes I forgot to note...
By now all of known to me "TODO:" items are implemented - point some new ones!

Some enhancements presented here will later appear in C++Builder DirectX libraries and Delphi DirectX 8.x headers.
  17-Apr-2003
Borland articles 
Borland Developer Network published two articles about Delphi future: "Open Letter to the Delphi Community" and "Octane and Delphi Q&A" (Octane is the code name for the next release of Borland® Delphi™). These are must read for all Delphi developers.
  14-Apr-2003
DirectX SDK 
Added DirectShow related libraries to Borland C++ Builder DirectX 9 libraries. With these libraries you can compile DirectX 9 (and DirectX 8) projects in C++ Builder. Now all DirectX libraries are included in this archive.
  06-Apr-2003
DirectX SDK examples 
Updated DX9 common D3DFramework (common.zip) for Delphi used by all Direct3D SDK samples. Enhanced code for integration of D3DApp with VCL.
  05-Apr-2003
NVIDIA Cg 
Cg ToolKit I've updated NVIDIA Cg package for Borland Delphi/C++Builder with new CgFXab.dll. This DLL is more compatible with C++Builder (not required for Delphi). Also corresponding CgFXParser.lib library for C++Builder was updated to new DLL.
  02-Apr-2003
DirectX SDK examples 
DX9 common D3DFramework (common.zip) for Delphi used by all Direct3D SDK samples updated. Fixed bug in D3DApp.pas (FindBestWindowedMode, FindBestFullscreenMode) that prevented application to exit correctly when it can't find supported device/mode/etc. during startup.
  31-Mar-2003
DirectX SDK examples 
ClipVolume image Uploaded sample introduced in MS DirectX 9 SDK: ClipVolume.
The ClipVolume sample demonstrates a technique for using shaders to "subtract" a sphere from an arbitrary model when rendering. This technique could be useful in visualization applications to see inside complex objects. The sample also shows how to perform two-sided lighting and pixel level clipping via texkill.
  25-Mar-2003
NVIDIA Cg 
Cg ToolKit I've updated NVIDIA Cg package for Borland C++Builder to release 1.1 from NVIDIA.
  21-Mar-2003
NVIDIA Cg 
Cg ToolKit Finally I'm presenting Release 1.1 of NVIDIA Cg Toolkit for Borland Delphi. Borland C++Builder version will be published too soon.

What's new in Release 1.1:
  • CgFX beta support for DirectX 8, DirectX 9, and OpenGL
  • Additional compiler optimizations
  • Fixes for bugs in Release 1.0 (December 2002)
Core API Cg headers for Delphi remains mostly unchanged, main changes are inside compiler code. But NVIDIA once again screwed their API - now for CgFX - original API is incompatible with Borland compilers. So, CgFX for Delphi uses special proxy DLL to work with NVIDIA binary (C++Builder CgFX API will use it too). Another change made to original CgFX API - Delphi CgFX uses real interfaces (COM style binary compatible) in API - not some semi-compatible stuff NVIDIA provided.

Warning: CgFX is officially still in beta stage. Actually I can't even run example provided by NVIDIA!!! I'm personally only checked what Delphi API can load FX files and enumerate everything inside it, but have not yet tested any rendering stuff, so bug reports strongly recommended!

INFO: CgFX is file format compatible with MS DirectX 9.0 Effect file 2.0. Main difference between MS and NVIDIA tools: NVIDIA CgFX allows to use FX 2.0 files not only in DirectX9 but in DirectX8 and OpenGL.
  09-Mar-2003
NVIDIA Cg 
Cg ToolKit Seems I've missed what NVIDIA released update 1.1 to their Cg compiler. So, downloading it now.
  07-Mar-2003
DirectX SDK examples 
In the lack of real updates I just want to inform of some performance increase obtained as result of Two Sided Stencil test implemented on newest hardware. Results were obtained in Shadow Volume sample from DirectX 9 SDK. In table below you how much FPS was raised then Two Sided Stencil test is enabled:
Mode \ ChipNVIDIA Quadro 1000 (NV30)ATi Radeon9500
Windowed 2%1%
Fullscreen (1280x1024x32b) 6%5%
Fullscreen (1280x1024x32b) with 4x antialiasing9%20%
Not bad at all, taking in account what stencil testing was applied on about 1/5 backbuffer.
  01-Mar-2003
Articles 
Here you can find list of changes in Direct3D for DirectX 9 from DirectX 8.1. provided by Rich. But beware: it's really too much compessed - contains all info, but don't contain any description.
  28-Feb-2003
Articles 
I've updated "How to compile ..." series of articles to reflect new DirectX 9 content fo site and synchronize with current state of libraries/headers:
  • How to compile ObjectPascal DirectX examples
  • How to compile MS DirectX 8.x SDK samples in C++Builder
  • Compiling fusion DirectX projects: Delphi/C++Builder
  •   14-Feb-2003
    DirectX SDK examples 
    DX9 common D3DFramework (common.zip) for Delphi used by all Direct3D SDK samples updated. Fixed bug what prohibited switching to fullscreen mode (thanks to e.brood).

    DX9 samples executables has not been replaced with recompiled bugless ones, so you have to do this by yourself (at least for now).
    Just to note: in Direct3D samples you can switch to fullscreen mode and back to windowed mode by using <Alt-Enter> key combination.
      11-Feb-2003
    DirectX SDK examples 
    Uploaded all three StencilBuffer Direct3D samples from MS DirectX SDK 9.0 converted to Delphi. These Stencil Buffer samples demostrate various usage scenarious of stencil buffer, what are apparent from their names: ShadowVolume, StencilDepth, StencilMirror.
    ShadowVolume image StencilDepth image StencilMirror image
    Demos had not changed much since 8.1 version of SDK, mostly are straight conversion from 8.1 interfaces to 9.0. Except ShadowVolume sample - it now can make use of two-sided stencil test if supported by hardware (ATi Radeon 9500 & Radeon 9700; NVIDIA GeForce FX).

    PS. I've also updated common D3DFramework (common.zip) for Delphi used by all Direct3D SDK samples - now it's includes D3DFile unit and other misc changes. D3DFile unit simplifies simple X-files usage in Direct3D (i.e. it manages textures used by mesh).
      09-Feb-2003
    DirectX SDK examples 
    Seems I've forgot to update DirectX 9.0 Common D3DFramework used by all SDK samples, so new Direct3D9 samples can't be compiled. Here is link to latest D3DFramework9 source (common.zip) for Delphi.
      06-Feb-2003
    DirectX SDK examples 
    New Delphi Direct3D samples from DirectX SDK 9.0 available to download:
    Fur image The Fur sample shows how to do real-time fur rendering. This sample implementation is tied to cube but contains all the code and media files needed to render any other fur meshes. Sample do not require hi-end hardware and should be run even on TNT-class video cards - only with vertex shader code processed by CPU.
    Lighting image The Lighting sample shows how to use D3D lights when rendering. It shows the difference between the various types of lights (ambient, point, directional, spot), how to configure these lights, and how to enable and disable them.
    I've also updated DepthOfField sample source code so now it compiles out-of-box against new DirectX headers (ID3DXEffect._Begin issue).
      28-Jan-2003
    DirectX SDK 
    Updated Delphi DirectX headers: DirectX 8.1 headers, DirectX 8.0 headers.
    These updates include changes made to DirectX9 headers and IIRC no bug fixes on Delphi side - changes will only affect Borland C++ Builder users.
      26-Jan-2003
    DirectX SDK 
    MS DirectX SDK DirectX 9.0 headers for Borland Delphi have been updated.
      List of changes:
    • Delphi fixes
      • Direct3D9 - D3DSIO_xxx constants fixed
      • Direct3D9 - TD3DShaderParamRegisterType changed to constants instead of enum for Delphi5
      • D3DX9 - PPointer and PAnsiChar were accidentially included in Delphi6 and up compilation due to bug in headers
      • D3DX9 - Changed "pPasses" parameter in ID3DXEffect._Begin method to pointer instead of out variable
      • D3DX9 - ID3DXPatchMesh.GetTessSize - fixed
      • D3DX9 - Validated most of TODO items
    • Borland C++Builder support
      • Added official support for Borland C++Builder 6 (JEDI/Delphi 6-7 versions of some units in previous headers failed to compile due to bug in Borland compilers related to Delphi6+ language features support in BCB)
      • Many little tweaks for general C++Builder compatibility
      16-Jan-2003
    NVIDIA Cg 
    Cg ToolKit Updated NVIDIA Cg toolkit for Borland C++Builder to Release 1.0 from 20-Dec-2002. Supported C++ Builder versions: from 5 and 6.

    Features of this release you can see below in Delphi Cg tookit 1.0 announce. C++Builder toolkit also supports OpenGL, DirectX8, DirectX9 along with deprecated Cg run-time API.

    Be warned: Release 1.0 of Cg toolkit contains completely updated programming interface. To enable usage of old API in applications you should compile them with CG_DEPRECATED_API conditional symbol defined.

    Download updated Cg toolkit for Borland C++ Builder...
      11-Jan-2003
    NVIDIA Cg 
    Cg ToolKit Updated NVIDIA Cg toolkit for Borland Delphi to Release 1.0 from 20-Dec-2002. Supported Delphi versions: from 5 and up.

    Release 1.0 of the NVIDIA Cg Toolkit includes the following bug fixes and improvements:

    • Support for new profiles
      • vs_1_1 for DirectX 8 and DirectX 9
      • vs_2_0 and vs_2_x for DirectX 9
      • ps_1_1, ps_1_2 and ps_1_3 for DirectX 8 and DirectX 9
      • ps_2_0 and ps_2_x for DirectX 9
      • arbvp1 [OpenGL ARB_vertex_program]
      • arbfp1 [OpenGL ARB_fragment_program]
      • vp20, vp30 [NV_Vertex_program 1.0 and NV_Vertex_program 2.0]
      • fp30 [NV30 OpenGL fragment programs]
      • fp20 [NV_register_combiners and NV_Texture_shader)
    • Improved runtime functionality
      • Core runtime library for parameter management and loading programs
      • Runtime library for DirectX 8 based applications
      • Runtime library for DirectX 9 based applications
      • Runtime library for OpenGL based applications
    Be warned: Release 1.0 of Cg toolkit contains completely updated programming interface. To enable usage of old API in applications you should compile them with CG_DEPRECATED_API conditional symbol defined.

    For your convenience I'm providing slightly modified examples from Beta 2.1 of Cg toolkit for both DirectX8 and OpenGL. Remember: you should declare CG_DEPRECATED_API conditional symbol.
    Also simple Cg OpenGL sample for new API provided - it has the same functionality as old one, just coded against new API. DirectX8 and DirectX9 samples will come later.

    Note: Currently Delphi headers for Cg toolkit only supports static linking to Cg DLL's, but later dynamic linking will be also supported.

    Download updated Cg toolkit for Borland Delphi...


    Please inform me of any grammar or general errors, contained on these pages, Alexey Barkovoy