Clootie graphics pages

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

News archive
2nd Half of 2002

 << 1st Half of 2003 1st Half of 2002 >> 
  
  30-Dec-2002
DirectX SDK 
Today I've added DirectX 9 libraries compatible with Borland C++ Builder. With these libraries you can compile DirectX 9 (and DirectX 8) projects in C++ Builder. Currently libraries support all DirectX components except DirectShow. So, combining C++Builder libraries and Borland compliant DirectX 9 headers for Delphi you can building fusion Delphi/C++Builder DriecX projects, like this NitroFont Renderer for Direct3D8.

Go to download page.
  30-Dec-2002
DirectX SDK 
Just a remainder: Delphi DirectShow headers for DirectX 9 SDK as always can be found at Henri Gourvest site dedicated to DirectShow. On this site you can find DirectShow components for Delphi what make DirectShow delevopment in Delphi so easy task.
  25-Dec-2002
DirectX SDK examples 
Uploaded "initial" convertion of common Direct3D framework used throw all MS DirectX SDK samples (this framework also used in many ATi samples). Currently it misses D3DFile unit with additional support for loading and rendering X-files.
For people who are unaware what D3DFramework is I recommend to read this small article: CD3DApplication Demystified.

First Delphi Direct3D SDK 9.0 sample is available!!!

DepthOfField image The DepthOfField sample shows a technique for creating a depth-of-field effect with Direct3D, in which objects are only in focus at a given distance from the camera, and are out of focus at other distances.
Sample uses FX effect-file to drive rendering for different hardware / techniques. Techniques include PixelShader 1.1, PixelShader 1.4 and PixelShader 2.0 variations with HLSH (High Level Shading Language) and assembler implementations.
So looking in this sample one can see how D3DFrawemork works and learn alot about new features of DirectX9 and DirectX9 compliant hardware (Radeon9700 and Radeon9500 currently).

For people who have not yet downloaded and compiled any of DirectX samples from this site I reccomend to read this article: How to compile ObjectPascal DirectX examples. Actually article is not updated to DirectX 9 and is written about DirectX 8.x, but you will get the idea what do you need to do by changing DirectX 8 links to appropriate DirectX 9 ones.
  22-Dec-2002
DirectX SDK examples 
I've added 6 classic Direct3D tutorials now for DirectX 9 at DirectX 9 SDK for Delphi page.
  22-Dec-2002
DirectX SDK 
Updated DirectX 9 SDK headers for Delphi: added DirectMusic headers and corrected stupid bug in DXerr9.pas.

Go to download page of DirectX 9 SDK for Delphi.

PS. And don't forget to report any bugs and compatibility issues in these headers. You can do this by e-mail or in Delphi DirectX forums here.
  20-Dec-2002
DirectX SDK 

I'm happy to announce availability of DirectX 9.0 Delphi headers and libraries in day of DirectX 9 SDK release!

Delphi DirectX 9 SDK headers adaptation followed by Borland and JEDI+ standarts available for all (up to 9.0) versions of DirectDraw, Direct3D, DirectInput, DirectSound; DirectPlay8 (with DirectX9 bits); D3DX 9.0 headers with support library; dxerr9 (DirectX 9.x error reporting) headers with support library.

As always there are two packages with headers are available: one (bigger) contains both JEDI compliant version, preprocessed versions of headers for Delphi 4/5 and Delphi 6/7, special simplified version of not Borland compliant headers (Compact subdirectory)) and (smaller) with only JEDI+ compiant headers included. DirectX helper libraries (DLL's) for D3DX9 and DxErr9 modules are available in separate ZIP archive due already big size of headers (and actually not evereone will use these DLL's).

Go to download page.
  16-Dec-2002
DirectX examples 
ParticleSystem1 image Added new sample: ParticleSystem1 - unidirectional generator.
Main idea of this sample was to demonstrate right and wrong ways of generating uniform distribution of unit length vectors - so end-points formed by these vectors forms sphere surface. But in process of providing visual feedback for user some other interesting techniques appeared.

I try to list them below (in advanced - beginner order):
  1. Vertex shader assembler code for particle systems with particle size calculation.
  2. Stencil buffer / matrix operations for mirror rendering.
  3. Various frame buffer blending modes.
  4. Rendering graphs with with transformed and lit vertices.
  5. Usage of DrawPrimitiveUP D3DDevice method (for graph rendering).
  14-Dec-2002
NVIDIA Cg 
Cg ToolKit Updated NVIDIA Cg toolkit for Borland C++ Bulder with new LIB files. Now you are not forced to turn off underscore prefixes generation for exported functions in C++ Builder Cg projects.

Download updated Cg toolkit for C++ Builder...
  12-Dec-2002
DirectX SDK 
Yesterday I've forgot to add DirectDraw examples download links. So here they are. Available DirectDraw examples: AnimatePalette, DDEnum, DirectSurfaceWrite, FullScreenDialog, FullScreenMode, GammaControl, OverlayAnimate, RefreshRate, SpriteAnimate, SwitchScreenMode, WindowedMode. Also DDUtil.pas helper unit can be found in archive too.
NOTE: these samples are not supported and/or maintained by me.
  11-Dec-2002
DirectX SDK 
Today to originally maintained Direct3D8 headers for Delphi I've added headers for all versions of DirectDraw and Direct3D, dxerr8 headers (DirectX 8.x error reporting) with support library. Direct3D8 and D3DX8 headers for both 8.0b and 8.1x versions were updated. Of cource, new headers are Borland and JEDI compliant, but now with official support for Delphi7. So all DirectX graphics related headers can be found on this site.
Also I've added links to DirectDraw examples from DirectX 8.1 SDK converted to Delphi.

Below you can find list of changes: DirectDraw changes to original Eric Unger DirectX 7 headers:
  • DDPIXELFORMAT related constants added / changed: DDSD_FVF, DDSD_SRCVBHANDLE, DDSD_DEPTH, DDSD_ALL.
  • DIRECTDRAWSURFACE CAPABILITY FLAGS related constants added / changed: DDSCAPS2_VOLUME, DDSCAPS2_NOTUSERLOCKABLE, DDSCAPS2_POINTS, DDSCAPS2_RTPATCHES, DDSCAPS2_NPATCHES, DDSCAPS2_RESERVED3, DDSCAPS2_DISCARDBACKBUFFER, DDSCAPS2_ENABLEALPHACHANNEL, DDSCAPS3_MULTISAMPLE_MASK
  • DirectDraw caps: DDCAPS_STEREOVIEW changed to DDCAPS_RESERVED1, DDCAPS2_RESERVED1 was DDCAPS2_PUREHAL, DDCAPS2_CANMANAGERESOURCE, DDCAPS2_DYNAMICTEXTURES, DDFXCAPS_OVERLAYDEINTERLACE
  • DIRECTDRAW STEREO VIEW CAPABILITIES: obsolete DDSVCAPS_ENIGMA, DDSVCAPS_FLICKER, DDSVCAPS_REDBLUE, DDSVCAPS_SPLIT
  • DIRECTDRAW SETCOOPERATIVELEVEL FLAGS - DDSCL_FPUSETUP comments updated
  • DIRECTDRAW BLT FLAGS added: DDBLT_PRESENTATION, DDBLT_LAST_PRESENTATION
  • DIRECTDRAWSURFACE LOCK FLAGS: DDLOCK_HASVOLUMETEXTUREBOXRECT, DDLOCK_NODIRTYUPDATE
  • DIRECTDRAWSURFACE OVERLAY FX FLAGS: DDOVERFX_DEINTERLACE
  • Removed Flags for dwDDFX member of DDSPRITEFX structure (these abilities never ever implemented by hardware vendors): DDSPRITEFX_AFFINETRANSFORM, DDSPRITEFX_RGBASCALING, DDSPRITEFX_DEGRADERGBASCALING, DDSPRITEFX_BILINEARFILTER, DDSPRITEFX_BLURFILTER, DDSPRITEFX_FLATFILTER, DDSPRITEFX_DEGRADEFILTER
  • in dvp.h part of DirectDraw - added: DDVIDEOPORTNOTIFY structure, IDirectDrawVideoPortNotify interface
  • Direct3D.pas unit was completely retranslated from original C/C++ headers to implement all versions of Direct3D interfaces from Direct3D to Direct3D7 with ability of conditional compilation restricted to lower Direct3D version. dxerr8.pas headers (DirectX 8.x error reporting) with support library - have not been translated till now. Direct3D8.pas corrected D3DCOLOR_XRGB function implementation. D3DX8.pas fixed types of out parameters of ClonePMeshFVF and ClonePMesh functions in ID3DXPMesh and ID3DXSPMesh interfaces. DXFile.pas removed TDXFileFormat enum - redeclared it as bunch of constants. Starting from this update Delphi header/sample download pages will be separated in two different areas: current - supported by MS - headers and downgrade pages. Currently as downgrade page you can see Delphi DirectX 8.0 SDK with examples page. This page only contains Direct3D8 and D3DX8 headers with support libraries and samples for these headers - as in 8.1 version of SDK MS changed these headers and new headers don't support 8.0 version (but 8.0 version is last version of DirectX SDK what can run on Windows 95, next [8.1] version requires at least Windoes 98). When DirectX 9 will finally out almost the same will happen to Delphi DirectX 8.1 SDK with examples page, as where will not be reason to supply D3DX8 and DXErr8 helper libraries with DirectX 9 Delphi SDK. What is really contained in downgrade pages described on Delphi resources page.

    One more change was happened - I was forced to slightly change "branding" of headers, as Tim Baumgarten page with DirectX headers linked to main page of JEDI.org often referenced as JEDI headers, but lacks JEDI compliance on translation standarts and there are no chances what this will be changed ever ;-(. So, starting from this release I recommend refer to DirectX headers from this site as "Clootie DirectX Headers" (I know it's shameless, but this is most natural and easy to remember title).

    And the last change - due to increasing size of headers package - DirectX helper DLL's now not included main ZIP headers package and available only as separate download.
      29-Nov-2002
    DirectX SDK 
    I've added part of media folder from DirectX SDK 8.x available for download at Delphi DirectX SDK download pages: DirectX 8.0 page, DirectX 8.1 page. Note: links in above mentioned pages refer to the same files.
    These media files are provided for peple who have not yet downloaded and installed DirectX SDK. [Shame on you!!!] Ok, I understand what downloading about 200Mb can be paintfull, so you have this download item.
      27-Nov-2002
    DirectX examples 
    New small test application: DebugRuntime. This simple application detect is Direct3D8 or Direct3D9 debug runtime activated.
      19-Nov-2002
    DirectX SDK examples 
    Uploaded 3 Direct3D samples converted to Delphi from StencilBuffer folder of DirectX SDK 8.1. These Stencil Buffer samples demostrate various usage scenarious of stencil buffer.
    ShadowVolume image StencilDepth image StencilMirror image
    All 3 demos had not changed much since 8.0 version of SDK, just some compatibility fixes with new version of D3D framework have been done.
      14-Nov-2002
    DirectX 9.0 
    In addition to yesterday news: ATi released DirectX 9.0 RC0 beta drivers for Radeon 9700. On this page you can find drivers and four great DirectX9 demos. These are MUST HAVE for Radeon9700 owners!
      13-Nov-2002
    DirectX 9.0 
    Today Microsoft released DirectX 9.0 RC0 as Public Beta. Note: this is NOT the SDK, just the runtime bits. Download link.
      29-Oct-2002
    DirectX SDK examples 
    For people who still have not downloaded DirectX SDK - I've uploaded X-files needed for VolumeFog sample, published yesterday.
      28-Oct-2002
    DirectX SDK examples 
    VolumeFog image The Volume Fog sample shows the per-pixel density volumetric rendering technique. The fog volume is modeled as a polygonal mesh, and the density of the fog at every pixel is computed by subtracting the front side of the fog volume from the back side. The fog is mixed with the scene by accumulating an in/out test at every pixel -- that is, back-facing fog polygons will add, while front-facing ones will subtract. If the value is non zero, then the scene intersects the fog and the scene's depth value is used. In order to get better results, this demo uses 12 bits of precision by encoding high and low bits in different color channels.

    More info on this sample can be read in supplied readme.txt file. Also VolumeFog technique is discussed in this PowerPoint presentation showed by Daniel Baker at GDC 2002.
      19-Oct-2002
    DirectX SDK examples 
    VolumeTexture image VertexShader image New samples from MS DirectX 8.1 SDK: VertexShader and VolumeTexture. Source code for samples is equal to DirectX 8.0 SDK.
      14-Oct-2002
    DirectX SDK examples 
    VertexBlend image I've uploaded Delphi version of VertexBlend sample from MS DirectX 8.1 SDK. It's almost unchanged in comparision to 8.0 version of SDK.
      08-Oct-2002
    DirectX SDK examples 
    RTPatch image PointSprites image Two samples from MS DirectX 8.1 SDK uploaded today: PointSprites and RTPatch. They have very small changed in comparision to DirectX 8.0 SDK ones. PointSprites have bug's fixed and RTPatch modified for compatibility with new D3DFramework from SDK.
    Take a note what IMHO no hardware currently support RTPatches in drivers.
      05-Oct-2002
    DirectX SDK examples 
    SkinnedMesh image After long silence on DirectX SDK samples today I present ObjectPascal version of SkinnedMesh sample from DirectX 8.1 SDK. Sample demonstrates loading, parsing and displaying animated hierarhy of X-file frames.
    DirectX 8.1 version of this sample in comparision to DirectX 8.0b one introduces VertexShader skinning mode and some optimizations in other drawing modes.
      03-Oct-2002
    DirectX examples 
    GifBlender2 image New GifBlender2 sample - sequel to GifBlender. There are many changes, including, but not limited to:
    1. GIF's are rendered by blending two nearest frames of GIF animation on multitexture capable hardware;
    2. 3 different texture pipeline setups tested for best quality rendering result: (a) simplest NVIDIA TNT class, (b) Matrox G400 class, (c) NVIDIA GeForce, ATi Radeon - 3 stage setup;
    3. GIF handling/rendering moved to separate portable between applications Delphi class;
    4. Usage of Ander's Melander TGifImage component is reduced to loading stage - animation frames loaded to Direct3D textures, timing info retrieved to internal data structure. All rendering and timing after that is handled by TD3D8GifImage class.
    Addition: GifBlender sample is also updated - fixed code snippet prevented to compile it under Delphi5.
      27-Sep-2002
    NVIDIA Cg 
    Cg ToolKit Updated NVIDIA Cg toolkit for Borland Delphi and Borland C++Bulder to version 1.5.1.6 aka Beta 2.1 released 12-Sep-2002.

    Previous (Beta 2) and current versions are binary compatible - i.e. executables compiled with previous version will run just fine against new DLL's and most of new executables will work with old DLL's. The only change to interfaces part is addition of new "bind locations" for use with ARB_vertex_program profile.
    Download new Cg toolkit...
      15-Sep-2002
    DirectX examples 
    GifBlender image New simple sample - GifBlender - showing how to draw animated GIF on Direct3D texture using Ander Melander's TGIFImage component.
      14-Sep-2002
    NVIDIA Cg / Pure DirectX examples 
    Both DepthColoring (pure DirectX/Direct3D) and DepthColoringCG (NVIDIA Cg/Direct3D) samples have been updated. Fixed some bugs in code and now both samples can run on non hardware VertexShader capable cards.
    Just to note: Radeon8500 with current drivers have some bugged VS implementation - so DepthColoring sample shows garbage colors produced during VS processing, but DepthColoringCG doesn't exhibit this bug as Cg compiler produces non-optimized / different code.
      09-Sep-2002
    NVIDIA Cg 
    DepthColoring image After getting DepthColoring sample running I've decided to convert VertexShader part of sample to use NVIDIA Cg toolkit. Final result of this attempt is here: DepthColoringCG sample.
    Converting to higher level language is a great joy. Just couple of hours - and you get fully working and debugged code. Net result is not as speedy as hand optimized code - but anyway by the end of the year we will have both NVIDIA Cg with optimizing compiler and MS DirectX9 HLSL with MS ability to use people with a lot of compiler development experience.
    Find more information about sample on download page.
      02-Sep-2002
    DirectX examples 
    WVPick image New Direct3D WVPick sample is a result of continually arizing questions from readers requesting how to calculate object coordinates if more complex motion is occuring in comparision to MS DirectX SDK Pick sample.
    So this sample has exaggerated motion of object - object is rotated by both WORLD and VIEW matrices (in original sample object was rotating only in VIEW space) AND user can move object in view space by dragging it with right mouse button.

    Go to download page.
      29-Aug-2002
    DirectX examples 
    DepthColoring image Uploaded new Direct3D DepthColoring sample - this sample shows how to convert depth information to color during vertex processing by various techniques.
    Additionally this sample contain fully Delphi resource compiler compatible resource file (contains menu, accelerators table, "change device" dialog templates).
    You can find more information about sample on download page.
      26-Aug-2002
    NVIDIA Cg 
    Cg ToolKit Updated NVIDIA Cg toolkit for Borland Delphi and Borland C++Bulder to version 1.5.0.7 aka Beta 2 released 16-Aug-2002.

    There are many changes in compiler implementation (it's got syntax more close to DirectX 9 HLSL) and in some runtime interface parts. These changes will require some rework of shaders code and at least recompilation of your Delphi/C++ code.
    Both Delphi/C++ headers has beed updated along with Delphi samples.
    Download new Cg toolkit...
      19-Aug-2002
    Microsoft DirectX 8.1b 
    While DirectX 9.0 is proceeding beta stage, Microsoft wrapping up release of DirectX 8.1b SDK. Most important parts of DirectX 8.1b are runtime bug fixes, so most important parts of DirectX 8.1b SDK (for owners of DirectX 8.1 SDK) are 8.1b debug runtimes. Here we go: Direct links to SDK pages (these are 'to be released' on MSDN):
  • Full SDK
  • DX8 Developer Runtime
  • DirectX 8.1 Redist (for Win98, Win Me, Win2K)
  • DirectX 8.1 Redist (for XP - QFE 321178)
  • SDK EXTRAS
  • DirectX 8.1 Symbol Files
  • DX 8.1 Release Notes
  •   18-Aug-2002
    Microsoft DirectX 9.0 
    DirectX 9.0 specifications start to to pop over net. Look here. Pixel and vertex shaders up to version 3.0 looks encouraging at least ;-).
      14-Aug-2002
    NVIDIA Cg 
    NVIDIA released source code for Cg compiler (cgc.exe) with a "generic" profile, which does some minimal semantic checks and prints out a tree representation of the code.
    Code can be compiled with Microsoft Visual C++ 6.0.
    Note: you can download NVIDIA Cg runtime interfaces for Delphi and C++Builder here.
      13-Aug-2002
    DirectX SDK examples 
    Pick image Converted Pick sample from DirectX 8.1 SDK to ObjectPascal (we should call this Delphi language according to new Delphi7 documentation ;-)).
    Sample shows how to implement picking; that is, finding which triangle in a mesh is intersected by a ray. In this case, the ray comes from mouse coordinates.
    To do this inverse transform is calculated and triangle is searched in displayed mesh.
    DirectX 8.1 version of sample (in comparision to 8.0 version) displays coordinates of all ray-mesh intersections, allows to use D3DX 8.1 ray-triangle test functions (throw interface) instead of custom written code and show all or closest hitted triangle.
    By the way: Direct3D 8.0 SDK Pick sample is also updated with small formatting changes.
      12-Aug-2002
    Delphi Direct3D headers / DirectX SDK examples 
    Maintenance update.
    Updated DirectX 8.0b headers - added J_D3D.inc file for compatibility with old DirectX 8.0 SDK examples. Uploaded revised D3DFramework for DirectX 8.0 (D3DFrame.zip) - discovered what on site version still used aforementioned J_D3D.inc file, so new version "correctly" depends on DirectX.inc file and has some source code formatting issues fixed.
      04-Aug-2002
    DirectX SDK examples 
    Water image Converted Water sample from DirectX 8.1 SDK to ObjectPascal. The sample illustrates how to use D3DX techniques stored in shader files. It shows a square pound inside a building, with rippling water effects including water caustics.
    Behaviour of this sample is identical to Direct3D 8.0 SDK Water sample. Code changes caused by differences in D3DX implementation between 8.0 and 8.1 versions. To recall: in D3DX 8.1 techniques allows you to use strings as parameter names (instead of FOURCC) and use one interface ID3DXEffect instead of using two distinct ID3DXEffect and ID3DXTechnique interfaces.
    By the way: Direct3D 8.0 SDK Water sample is also updated with small formatting changes.
      01-Aug-2002
    DirectX examples 
    Updated XFileSmooth Delphi sample ZIP archive - added absent 'winmain.res' resource file.
      30-Jul-2002
    DirectX SDK examples 
    Cull image Uploaded new Direct3D sample 'Cull' from DirectX 8.1 SDK converted to ObjectPascal.
    This sample illustrates how to cull objects whose object bounding box (OBB) does not intersect the viewing frustum. By not passing these objects to Microsoft® Direct3D®, you save the time that would be spent by Direct3D transforming and lighting these objects, which will never be visible. The time saved could be significant if there are many such objects or if the objects contain many vertices.
      25-Jul-2002
    Delphi Direct3D headers / DirectX SDK examples 
    One more maintenance update.
    Updated D3DX8 headers for 8.1 and 8.0b DirectX versions. Fixes to: D3DXWeldVertices, D3DXLoadSkinMeshFromXof, D3DXIntersect/D3DXIntersectSubset, D3DXSplitMesh.
    Also more updates to DirectX SDK samples both maintenance and related to fixed D3DX8 headers: SkinnedMesh (DX 8.0), BumpSelfshadow (DX8.1) - once again and CubeMap (DX 8.1).
      22-Jul-2002
    DirectX SDK examples 
    Today I present some maintenance update. Thanks to Takaya Kakishima I've fixed bug in OptimisedMesh (DX 8.0, DX 8.1) sample that shows up when no DirectX SDK intalled on computer. Also some compatibility issues fixed in BumpSelfshadow (DX8.1) and SkinnedMesh (DX8.0) samples.
      16-Jul-2002
    NVIDIA Cg 
    Updated NVIDIA Cg toolkit for Borland Delphi and Borland C++Bulder to version 1.0.1.
    No changes have been made to headers, so all projects are fully compatible with new version. But there are new DLL's and internal Delphi/C++Builder implementation of DirectX classes have been changed to comply with NVIDIA original implementation in object creation behaviour. Also DirectX sample executable have been recompiled for new DirectX helper DLL.
    Download new Cg toolkit...
      12-Jul-2002
    NVIDIA Cg 
    NVIDIA yesterday released it's Cg toolkit (version 1.0.1). No more beta stage.
    So, stay tuned...
      09-Jul-2002
    DirectX SDK examples 
    EnhancedMesh image Uploaded new Direct3D sample OptimizedMesh from DirectX 8.1 SDK converted to ObjectPascal.
    DirectX 8.1 version provides much more optimization possibilities: dynamic vertex buffers; vertex cache or strip reordered; drawing using strips, single degenerate strip or triangle lists.
      02-Jul-2002
    NVIDIA Cg 
    Updated NVIDIA Cg adaptation for Delphi.
    Now cg_ab.dll is gone and parts of it are embedded in both cgD3D_ab.dll and cgGL_ab.dll libraries used accordingly in DirectX and OpenGL projects. This modification reduces size of your applications redistributive by something like 100Kb.
    To allow above modification cg.pas is converted to cg.inc and is included in both cgD3D.pas and cgGL.pas. For convenience empty cg.pas is provided, so you projects will not need modifications (only recompile). But it's strongly recommended to remove all references to cg.pas at all. Both OpenGL and DirectX samples have been modified slightly and recompiled for compatibility with new DLL's.
    Go to NVIDIA Cg adaptation page for Delphi/C++Builder.


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

    Hosted by uCoz