Older news
July 19, 2007
July 19, 2007:
Just to let you know that my whole VRML stuff is on the move
to SourceForge.net.
See project page on SourceForge.
I already use their SVN repository to host my code.
Most of my whole private repository was imported there,
so even though the repository on SF exists for less than a week, it already
has 1800+ commits :). If you look close enough, you'll notice two games
visible in the repository that were not released yet on these pages.
They are available only from SVN sources for now:
sandbox (a demo of isometric rendering) and "The Rift" (my current small
project — a demo in the style of adventure games, with still background
and 3d players; just a start for now).
See sources and many other
pages for detailed instructions how to get code out of SVN repository.
June 12, 2007:
Finally, the great update happens ! Most important are
"The Castle" 0.7.0 and
view3dscene 2.1.0 releases,
and (for programmers) the underlying changes to
Kambi VRML game engine.
Actually almost all programs on these pages are updated too
(packaged in a different way, ported to Mac OS X, minor fixes).
As for the question: why didn't you update anything on these pages
within the last 6 months ?. My answer is: I was imprisoned in a cave.
By a legion of elves. Really, hundreds of nasty bastards with
pointy ears kidnapped me and threw me into a dark cave. Just today my cat
managed to rescue me. :) Seriously, recently my life was just
pretty occupied — I'm on the 1st year of
Ph.D.
Studies at the University of Wrocław (in case you didn't notice the
link to "Teaching" stuff at the top of the main page).
Besides, well, life has been really good lately — thanks to K.O.
and the mountains. :)
"The Castle" user-visible features:
- New DOOM E1M1 level.
- Ported to Mac OS X.
- Shadows much improved. Not totally finished yet
(still only depth-pass),
but much corrected and optimized. With good graphic card, the game is
playable with shadows on. Thanks go to Olgierd Humeńczuk for setting
me on the right track.
- New controls features:
- You can assign up to two keys and one mouse button for
each action in "The Castle".
- Default shortcuts changed to more resemble modern FPS games:
use AWSD moving, left/right arrows rotate,
E interacts (HalfLife2-like), R drops etc.
- New keybinding to use "potion of life" if owned,
default is "l" (lower "L").
Very handy in the middle of the fight, when you really don't have time
to search your inventory by the "[", "]" keys .
- "Invert vertical mouse look" option.
--screen-size
command-line option.
- On "Castle Hall" level: werewolves fight totally changed, to be much more
interesting.
- On "The Gate" level: teleport made closer, to reduce a little the need
for jumping, scroll of flying easier to get with sword, doors at the end,
minor fixes.
- Footsteps sound now changes within level, depending on whether you
walk on grass or concrete ground.
- Much better demo (background behing main menu). Enjoy.
- Alien model improved (better animation, manifold (for shadows),
skin texture with ambient occlusion).
view3dscene user-visible features:
- MD3 (Quake3 engine) model format fully supported.
- Radio menu items in view3dscene.
- Ability to select an item (point and it's triangle).
- Edit menu items to remove selected geometry node and selected face.
- Recently opened files menu.
- In MouseLook mode, right/left keys work like strafe
and comma/dot are for rotations.
- Changing blending source and dest factors at runtime.
- Menu item to show OpenGL capabilities.
- Also ported to Mac OS X, actually the whole engine is ported to Mac OS X.
Most notable bugfixes:
- Various problems specific to particular OpenGL implementations fixed:
- Radeon: wire box is now drawn correctly.
- Mesa, Radeon: volumetric fog rendering fixed.
- Other small fixes for Mesa.
- Some NVidia cards: life indicator alpha rendering fixed.
- Libpng under Unixes loading fix (no longer need to install
libpng*-dev packages).
Most notable engine internal improvements for programmers
(of course not counting features and fixes that already got mentioned above... ) :
- VRML camera is now correctly read, transformation of
Viewpoint
indicates gravity direction. This way you can set gravity up vector
and initial camera up vector to different things.
- New examples in "Kambi VRML game engine":
vrml/opengl/examples/shadow_volume_test
,
opengl/examples/demo_matrix_navigation
,
3d/examples/draw_space_filling_curve
,
opengl/examples/fog_coord
,
audio/examples/algets
and
audio/examples/alplay
.
- Everything is in FPC objfpc mode, no longer Delphi compat mode anywhere.
- Integration with FPC Matrix unit started (VectorMath now reuses
non-object types from Matrix, many units use Matrix object types
and overloaded operators).
VRMLRayTracer
interface changed to much cleaner object-oriented.
- Detailed GL_VERSION and GLU_VERSION parsing and reporting,
including the ability to detect Mesa and Mesa version.
See GLVersion and GLUVersion objects.
- "The Castle" excellent level objects framework: things that move and animate
on the level are now much easier to add and design. This was already heavily
used by DOOM E1M1 level, also see the nice elevator demo on "Tower" level.
- TVRMLGLAnimation updated to work with VRML 2.0 SFNode and MFNode fields.
- OggVorbis loading and playing (through OpenAL extension
or vorbisfile library).
"The Castle" improvements for content (e.g. 3D level) designers.
Many "The Castle" debug menu improvements and greatly improved game
confugurability by editing game XML files:
- Configure sounds by
sounds/index.xml
file,
debug menu option "Reload sounds.xml".
- Configure items by
items/kinds.xml
file.
- Blending type configurable for all items and creatures.
- All animations are now expressed in external files
(in *.kanim files or in XML nodes inside kinds.xml files).
- Configure levels by
levels/index.xml
file.
Many level properties, also hint boxes are configurable there.
- New level "hello world".
KambiHeadLight
node to configure headlight from VRML.
- No longer any need for "Transparent" properties. All creatures/items/levels
can now freely mix transparent and opaque parts, and everything will
be rendered always OK.
- Octree params configurable from debug menu.
Also packaging changes: units-src
renamed to
kambi_vrml_game_engine-src
,
kambi.cfg
file is included inside, test_kambi_units
is included inside. Most programs package names include their version numbers.
Minor programs releases:
rayhunter 1.2.1,
lets_take_a_walk 1.2.0,
glViewImage 1.2.1,
glplotter 1.1.6,
glcaps 1.1.1,
gen_funkcja 1.0.1,
bezier_curves 1.1.5,
malfunction 1.2.3,
kambi_lines 1.1.2.
February 28, 2007:
Hello! It's been a while without any significant update on this page —
so I thought that I just let you all know that the work on
"The Castle" and
Kambi VRML game engine
was ongoing in these last months.
0.7.0 release of "The Castle", 2.1.0 release of view3dscene along
with releases of most other programs on this page are scheduled
within a week or two. A lot of internal features (usable for programmers
wanting to use my engine, or 3D content designers for "The Castle") were done,
along with a lot of bugfixes and many small feature additions.
October 7, 2006:
Good news for FreeBSD users: I finally upgraded my FreeBSD to 6.1,
and got NVidia OpenGL working smoothly there, along with OpenAL.
So I updated all FreeBSD binaries on these pages to their latest version.
I also confirmed that "The Castle"
compiles and works perfectly under FreeBSD (although the FreeBSD binary
is not included in the game archive yet).
October 1, 2006:
A made a new page about my
Kambi VRML game engine.
Most of the content of this page was already said here and there,
but now I want to say it more explicitly: I'm making a reusable game
engine. Also the engine sources are updated now, three new example
programs are added: images/examples/image_convert
,
opengl/examples/test_font_break
and
opengl/examples/multi_glwindow
.
September 21, 2006:
Newest version of
my master's thesis about my VRML engine is available. Only the 7th chapter remains
undone. Later update the same day: all chapters done!
Units sources updated:
included is an example how to do fog culling (to the fog visibility range),
see the file units/vrml/opengl/examples/fog_culling.dpr
.
Also blending source and dest factors are now configurable.
Also behavior on incorrect Background
nodes is now better
(reports warning and proceeds).
September 13, 2006:
First of all, a draft and unfinished version of
my master's thesis about my VRML engine is available.
view3dscene 2.0.1
released — small updates and fixes. New menu items
were added to display the whole octree and to change the
point size of PointSet
.
The quadric stacks value (for the command-line option
--detail-quadric-stacks
and KambiTriangulation
node) can be 1 now.
The recently released FPC 2.0.4 is used to compile view3dscene now.
Also, view3dscene
entry was added to freshmeat. You can use this e.g. to subscribe to new
releases, so that you will be automatically notified about new
releases of view3dscene.
In VRML test suite
vrml_2/kambi_extensions/fog_linear_with_immune.wrl
test fixed.
August 24, 2006:
First of all, I'm proud to announce that
VRML 2.0 (aka VRML 97) support is implemented now.
It's by no means complete yet, but it's definitely usable
already — see VRML implementation status for details and results of
various test suites. Almost all of my
non-standard VRML extensions work in VRML 2.0 too, and actually
you can even mix VRML 1.0 and 2.0 features in your files.
- view3dscene 2.0.0
released — VRML 2.0 support,
various other improvements: "Jump to viewpoint" menu added
(this is useful both for VRML 2.0 Viewpoint nodes and VRML 1.0
cameras too), --camera-pos, --camera-dir, --camera-up,
--camera-up-z, --camera-kind, --view-angle-x command-line options
removed (all these properties (and much more) can be set now
by appropriate Viewpoint/camera nodes in the file; I decided that
keeping these options was an unnecessary complication of implementation),
menu disabling implemented, warnings while loading VRML file are
stored and can be later viewed from the GUI using "View warnings"
menu item, added "Reopen" menu item, added "Edit" menu
(to perform interactively all the things previously
controlled by
--scene-change-*
command-line options;
--scene-change-*
command-line options remain to work
but only for the first loaded scene, so they are mostly useful
when combined with --write-to-vrml
).
- Kambi VRML test suite — this was previously
known on these pages as "kambi_vrml_examples.tar.gz", or "Example VRMLs".
Many test cases were added
for VRML 2.0, some of which were translated from VRML 1.0,
some are new, some are created with Blender's VRML 97
exporter. These VRML files are now officially licensed on GNU GPL.
- rayhunter 1.2.0
released — VRML 2.0 support.
- rayhunter gallery —
added mirror fun rendering, demonstrating mirror effect
in one of the first rayhunter renderings of VRML 2.0 model.
- "The Castle" 0.6.6
released — in 0.6.5 sky on the "Gate" level
was not visible, fixed now. Also support for designing levels
in VRML 2.0 added, but not finished yet, see TODO item on
"The Castle" — development page.
- glViewImage 1.2.0
released,
glplotter 1.1.5 released,
bezier_curves 1.1.4 released
— updated to inherit many improvements in
OpenGL and images units: menu disabling,
and GIF images reading (by running ImageMagick under the hood),
fixed handling of PNG files with alpha channel recorded in tRNS chunk.
- lets_take_a_walk 1.1.5
released,
malfunction 1.2.2
released
— small fixes and generally updated
to compile with latest version of VRML units.
- Sources and
sources documentation
updated with all improvements mentioned above.
edytorek
is removed from these pages.
Reasoning: I was not using it, not developing it, and I lost my interest
in it long time ago. Since a long time I use Emacs as my only
text editor, under all OSes. So there were a couple of embarassing
issues with edytorek
: it was Windows-only, it was
compiled with Delphi Personal, and I didn't publish here it's source code...
All these issues are quite embarassing for someone who
uses Linux and FreePascal as his main work tools, and develops
open-source programs... Of course I intended to clean edytorek
code, porting it to Lazarus and publish it's sources some day,
but, honestly, I don't think that it will ever happen.
So, goodbye edytorek
.
August 1, 2006:
New version of "The Castle"
(0.6.5) released: whole documentation is in HTML (available
both here online and offline inside documentation/
subdirectory, README file inside archive doesn't contain much now),
--debug-log
option will print lots of debug info,
lifeloss when falling down lowered (to avoid getting hurt too easily
when jumping), removed one scroll of flying from "Castle Hall"
(to make the trick with flying over creatures harder),
many other small changes and fixes.
My nearest development plans:
- At the end of this week I plan to finally
upload here basic (static, without any PROTOs) VRML 97 support
for view3dscene !
- Unfortunately further "The Castle" development is going to be suspended
until the end of September. At the end of September I should do to
"The Castle" two things: 1. add a small joke/experiment level
(it's already partially done — you'll see what is this :) and
2. finally fix these Radeon issues. This will result in 0.7.0 release.
So stay tuned.
July 12, 2006:
- New program is available:
grammar_compression
— implementation of Sequitur and Sequential compression algorithms
in ObjectPascal.
- "The Castle" page
is reworked, I created separate page for "developer" stuff.
I want to move most information from Castle's README file to these WWW pages,
and then replace README file with offline version of these pages.
July 3, 2006:
-
view3dscene 1.2.5
released — more usable behavior
on errors while loading the scene: previously loaded state is preserved,
errors when loading command-line scene are shown in the GUI,
various other small usability improvements, some new/changed menu items.
- Base units
updated with many internal changes —
Added view3dscene_mini_by_lazarus: example that you can use all my VRML
rendering code within "normal" Lazarus program, using Lazarus
TOpenGLControl. test_kambi_units updated.
Many "var" parameters changed to "out" to get more sensible FPC hints.
- glplotter 1.1.4
released — separate X and Y scaling available.
June 8, 2006:
New version of "The Castle" (0.6.4)
released. Various small improvements and one important fix:
open-source Radeon drivers
under Linux are reported to work correctly right now. Unfortunately, issues
with proprietary Radeon drivers (under Windows, and probably under Linux too)
are not fixed yet — so stay tuned :)
In an unrelated news: For those of you who know my old alternative
email address [email protected]
: don't use this address anymore.
I will not receive mail send to this address.
If you recently (in May 2006 or later) send a mail to this adress,
then I probably didn't get it.
My only vaild email address is now
[email protected].
May 19, 2006:
New version of "The Castle" (0.6.3)
released. Various "cleaning" changes and fixes:
- Memory use reduced, this also reduced loading time.
Comparison:
Times and memory use below were measured on Linux with release build,
with NVidia drivers. Note that the actual times and memory use may vary
wildly from one graphic driver to the other, as the most time and memory
consuming tasks are in preparing OpenGL things, like display lists
and textures. For example, on Windows, memory consumption is slightly
lower, which indicates that NVidia drivers are slightly better optimized
for memory use on Windows.
But hopefully the proportions will be around the same.
Times below were measured for entering "New Game" -> "The Gate" level.
0.6.2 version times:
Loading level: 10 sec
Loading creatures: 41 sec
Loading items: ~ 4 sec
Memory use: 496 MB
0.6.3 version times:
Loading level: 10 sec (nothing optimized here for time)
Loading creatures: 24 sec
Loading items: ~ 2 sec
Memory use: 278 MB
A lot of improvements to how we store and generate TVRMLGLAnimation
instances was done for this.
- "Debug menu" is now separated from normal game menu,
is invoked by ~ key, default FPS toggle key is Tab now.
This is all to make debug menu (a little) more hidden.
Also debug menu has now submenus for commands related to:
player, creatures and items. Added commands "Set Player.MaxLife"
and "Reload animations/models of specific item".
- Error messages fixed on Linux, previously various errors
(e.g. in level or creatures VRML models) produced
"ModeGLEnter cannot be called on a closed GLWindow" message
instead of the right message.
- --display command-line option for XWindows (but is sometimes
unstable, probably because of NVidia OpenGL unstabilities)
- Applied patches from Szymon Stoma & Kaśka Zaremba to improve
texturing of some places on "The Gate".
- MouseLook can be turned off.
- Proper texture filtering is used for items, creatures and all level
parts. Previously items, creatures and StairsBlocker on castle_hall
used bad filtering (always GL_LINEAR, while e.g. GL_LINEAR_MIPMAP_LINEAR
was noticeably better; in general, "Video options -> Texture quality"
setting should be used).
Also view3dscene (version 1.2.4)
released: mouse look available (use "m" key). Just like in "The Castle".
May 9, 2006:
New version of "The Castle" (0.6.2)
released. Changes from version 0.6.0 include:
right mouse button now does jumping, sound of SpiderQueen hurt fixed,
SpiderQueen adjusted — overall it's a little easier to defeat now,
although some details make it also harder (life decreased,
the trick with jumping/flying on SpiderQueen is now much harder),
bow + arrows added, Werewolf has higher life now.
This was all done for version 0.6.1, that was final version for PGD
competition. Version 0.6.2 brings only minor corrections to README and
"Credits" text.
May 8, 2006:
New version of "The Castle" (0.6.0)
released. This is final (or almost-final) version for the PGD competition.
List of changes since 0.5.9 version is huge, among the most important
features are: new level "Cages" with new creatures,
much reworked level "The Gate" (thanks to Szymon Stoma and Kaśka Zaremba),
new features making creatures harder to beat
(homing missiles, knockback for player, now so easy to interrupt boss
attack, aliens try to always stay away from you,
most creatures are generally faster), life indicator for bosses,
and an ending sequence is done.
Also view3dscene (version 1.2.3)
released with some improvements:
- removed FreeWalk navigation method, instead now you can
freely control PreferHomeUpForRotations/Moving from menu.
- ambientIntensity from VRML 97 implemented for lights.
May 4, 2006:
New version of "The Castle" (0.5.9)
released: creatures are now configurable by kinds.xml
file,
--debug-no-creatures
command-line option,
you can set color bit depth and display frequency (the last feature is actually
honoured only on Windows for now — yeah, I'm under the pressure :) ).
"Official" downloadable version is still 0.5.6,
version 0.5.9
compiled only for Linux is here.
May 3, 2006:
New version of "The Castle" (0.5.8)
released: debug menu for lights improved (ambientIntensity for lights,
"Edit headlight", "Global Ambient Light"), some other small things.
There's also a new level, but it's hidden — don't look at it now,
should be finished tomorrow.
"Official" downloadable version is still 0.5.6,
version 0.5.8
compiled only for Linux is here.
April 30, 2006:
New version of
"The Castle" (0.5.6)
released: trying to nail down display bugs on Radeon:
checking display lists availability,
"Creature animation smoothness" and "Restore to defaults" in "Video options".
April 29, 2006:
New version of
"The Castle" (0.5.5)
released: many small pending features/bugfixes done: you can restart
"New Game" from any level that you once managed to get to,
when changing keys assignment and the conflict is found you can just clear
the assignment of the old key (Eric Grange idea), fixes when floating
just above the water, player moving speeds adjusted better,
better navigation when flying/swimming (you can go up/down just
by looking up/down), fixed walking down from slight hills,
fixed accidentaly moving adjacent menu items sliders,
left/right keys are by default assigned to left/right strafes now,
some others.
April 27, 2006:
New version of
"The Castle" (0.5.4)
released: mouse looking implemented. Also "The Castle" archives
are now hosted on much faster server provided by
Szymon (thanks!).
April 26, 2006:
- New preview version of
"The Castle" (0.5.3)
released: sounds and music are done !,
and various "Gate" level improvements (like swimming).
- lets_take_a_walk
(ver 1.1.4) release — bugfix for newer OpenAL
under Linux that don't include alut functions in the same SO file.
- Inside units sources, there's new unit
ALSourceAllocator
and it's demo in audio/examples/
.
This is an intelligent manager of OpenAL sounds,
used in The Castle.
April 17, 2006:
- First of all, a preview of my new game "The Castle" is available. This is the project that I am working on since February
this year. Everyone is most welcome to download and try it !
Updated view3dscene
(ver 1.2.2):
VRML extensions:
Also head bobbing much better, and various other improvements.
Important updates to demo_animation
(see units/vrml/opengl/examples/
) in the
sources:
- New demo (gus) showing how to use Blender "armature" animation
to export animation to VRMLs such that demo_animation is able to
render it. This is quite great, because this allows you to very
comfortably design animations in Blender and then use them with my engine.
- Important fix for animating models with textures, demo (cube_opening)
added.
- Animating class
TVRMLGLAnimation
extended to be able
to animate / morph between an atritrary number of models (>= 2),
not only 2. Each model has an associated point of time in the
animation. Demo (gus_3_final, to be used together with gus_1_final
and gus_2_final) added.
- Automatic looping and going backwards ability for TVRMLGLAnimation.
See --loop, --no-loop, --backwards and --no-backwards command-line
options for demo_animation.
Updated glViewImage (ver 1.1.5) (various small fixes).
Updated many other programs sources to keep them compileable,
because of many changes in units, and some other various
small fixes.
Oh, and I put here my
public GPG key.
March 9, 2006
Many
view3dscene (ver 1.2.1)
updates:
- VRML 97 nodes
NavigationInfo and
WorldInfo handling,
kambi_vrml_test_suite has test VRMLs for this.
- More work on gravity stuff: growing up to camera height
(allows climbing stairs etc.), nice effect when falling down from high,
jumping ("A" key), crouching ("Z" key), head bobbing.
Strafe move keys changed (to not collide with "Z" and to be
more standard): "Comma" / "Period". Also horizontal moving
in Walk mode is now better (moving dir is not affected by PageUp/PageDown
keys operations, i.e. current vertical rotation). And vertical rotations
(PageUp/PageDown keys) are bounded, so that you're no longer able to "stand
on your own head".
- Console -> Print scene bounding box as VRML node menu
command.
See also screenshots of my game "The Castle" (link not available
anymore).
This is the main thing that I'm working on right now, it's for the
PascalGameDevelopment
competition.
February 24, 2006
Many updates. Every OpenGL based program updated,
all units and programs sources
updated (along with
their documentation).
Most important things are
- Timing bug fixed in every OpenGL program
- Compilation of many examples fixed
- "Sunny day" level of
malfunction
completely reworked and improved
- view3dscene
up/down navigation improved and "gravity" setting added
Detailed changes log follows:
General updates:
- Timing bug fixed (timing was sometimes incorrect, which
caused some bad artifacts when moving camera or doing some
animations — this was particularly observed with newest
NVidia Linux OpenGL drivers).
- Compilation of many examples fixed; sorry, I wasn't compiling examples
too often and recently I broke many of them (bacause of changes to
Parameters
stuff). It's fixed now. I also added the automatic test of compilation
to the script I use to create
units-src.tar.gz
archive, so
this Will Not Happen Again.
- Fullscreen toggle shortcut is F11 (following (GNOME) standards
— epiphany, GIMP, gthumb and firefox).
- FPC 2.0.2 bug #4831
workarounded (this caused some rare problems when displaying dialog boxes).
malfunction (ver 1.2.0)
specific updates:
- "Sunny day" level completely reworked and improved.
- malfunction sources contain now Blender files used to create all
objects and levels, see devel_data/ subdirectory.
view3dscene (ver 1.2.0)
specific updates:
- Small interface improvements: +/- keys (move speed change) work
now better (time-based), progress bar is shown in OpenGL window
when opening scene using "Open" menu item,
Cancel key for raytracer dialog, "Navigation" submenu.
- Fixed bug that occured for specific models with empty Coordinate3 node
followed by empty IndexedFaceSet node — this triggered OpenGL
error "invalid value" in some cases, now it doesn't.
- Better Insert/Delete navigation (vertical moving with respect
to home camera up, instead of current camera up) in Walk mode.
lets_take_a_walk
also benefits from this.
- Gravity setting: you can now turn gravity on, and fall down.
Basic implementation committed, expect more work on this soon
(including "jump" and "duck" keys and head "bobbing") — I'm porting
stuff from some very old game of mine into
TMatrixWalker
class.
glViewImage (ver 1.1.4)
small improvement (accepts dir name on command-line).
Other OpenGL programs updated:
lets_take_a_walk (ver 1.1.3),
glplotter (ver 1.1.3),
bezier_curves (ver 1.1.3),
kambi_lines (ver 1.1.1).
Also sources docs page
shortened, kambi_vrml_test_suite repackaged and fixed
some links to www.web3d.org VRML specification.
Last-minute note about FreeBSD:
compiled programs for FreeBSD will not be updated today.
I'm sorry, but currently I have terrible problems with OpenGL on
FreeBSD — current NVidia drivers (8178) cause
kernel crashes (it seems that they didn't really update their
drivers to FreeBSD 6 ?), and Mesa is terribly unstable.
I checked various OpenGL programs, including Mesa demos, and
they all just fail in various mysterious ways (segfaults, hangs, etc.).
So it's not a problem specific to my programs — it's some
problem with my FreeBSD setup, but I don't have time to fight
with it now. Anyway, after compiling, I was unable to actually
test my programs on FreeBSD,
so I will not upload here completely untested binaries.
If you use FreeBSD, feel free to just compile them yourself.
February 13, 2006
Many modifications to my general units done, so
all units and programs sources
are updated. As usual,
documentation generated by pasdoc is also updated.
New unit VRMLGLAnimation was created, to easily produce animations
from still scenes.
See extensive demo in vrml/opengl/examples/demo_animation.dpr
,
with raptor and sphere sample models.
I'm also glad to add that I'm starting in
Pascal Game Development
game competition. This should result in a new game available on these
pages around April 2006, and between February and April 2006 I will
constantly update my units on these pages.
December 11, 2005
Documentation generated by pasdoc
and units sources updated again:
much more impressive introduction page, old README_GLOBAL file removed,
many things translated to English. Some issues with compilation
with FPC 2.0.2 fixed.
November 12, 2005
lets_take_a_walk
1.1.2 released (only for Linux) — fixed problem with linking to
current Debian-testing openal version.
October 2, 2005
A lot of content on these pages finally translated to English.
New versions of most programs released, with updated documentation
and often other improvements. Full list of changes:
-
Specification of my extensions to VRML,
standard command-line options understood by all my OpenGL programs
pages completely translated to English. Polish versions removed.
- malfunction 1.1.0
released — help text is now in English,
complete English documentation. Polish docs removed.
- view3dscene 1.1.3
released — now English documentation is complete
(docs about
--detail-...
options added).
Also handling of some Inventor models improved —
RotationXYZ is handled, some other Inventor fields are parsed
(and then ignored).
- kambi_lines
(previously known as kulki) 1.1.0 released —
new program name, complete English documentation,
English help text inside the game. Polish docs removed.
- lets_take_a_walk 1.1.0
released — complete English documentation, F1 shows help text,
sources contain really all source files — including
devel
subdir with some scripts and Blender, GIMP and Terragen
data files. Polish docs removed.
- glcaps 1.1.0
released — complete English documentation. Polish docs removed.
- glViewImage 1.1.3
released — complete English documentation, small changes.
- bezier_curves 1.1.2
released — complete English documentation, small changes.
- rayhunter 1.1.0
released — complete English documentation, greatly extended
abilities of
--write-partial-rows
option by <log-rows-file>
.
Polish docs removed.
various_notes_begin.pasdoc
and gen_light_map.dpr
are contained in units sources.
Second update on the same day, October 2, 2005:
- lets_take_a_walk 1.1.1
released (only for Linux, other binaries stay 1.1.0) —
when using OpenAL sound, sometimes
lets_take_a_walk
hanged on exit (i.e. when you pressed Escape or Alt+F4 etc.). Fixed now.
Third update on the same day, October 2, 2005:
(busy day, eh ? :)
- lets_take_a_walk
updated. Accidentaly 1.1.0 and 1.1.1 packages (binary,
for all OSes, and source) were uploaded without one texture
correct, and you will not see cool shadows on the floor.
They are repackaged now, and all is fixed.
In other words: if you happened to download
lets_take_a_walk
today, between the hours 0.00 – 7.00, please download it and install
once again.
September 12, 2005
- Units sources and
documentation generated by pasdoc
updated (recently implemented
pasdoc features used
(e.g. @xxxList tags),
OpenGL optimization notes are now part of
documentation parsed by pasdoc and are available for viewing in
output HTML / pdf docs, some things translated to English,
various small improvements in sources).
- Small other improvements: better layout of
sources page,
DBGridExporter has fixed XML export.
- lets_take_a_walk
version 1.0.4 release for Linux, fixes a bug (under Linux you had
to install openal-dev lib, but installing only openal should be sufficient)
May 21, 2005:
- Demo of documentation of my sources added, as generated by
pasdoc.
I'm also proud to announce that I'm now one of pasdoc's developers.
- My sources
contain now Lazarus package files to easier use my units
inside Lazarus
programs.
- Automatic tests of my units (implemented using fpcunit) are published
and downloadable from sources page
- KambiClassUtils unit: some important generally-useful
stream classes implemented:
TPeekCharStream, TSimplePeekCharStream, TBufferedReadStream.
All VRML loading code now loads using TPeekCharStream,
you can always wrap any other TStream inside
TSimplePeekCharStream or TBufferedReadStream.
This means that loading VRML from file is both more flexible in source code
and less memory-consuming at runtime.
Also all VRML reading code can read VRML files compressed by gzip.
view3dscene
updated to version 1.1.2,
rayhunter
updated to version 1.0.1.
Example VRMLs updated.
- Some fixes, including serious bigfix to VRMLFlatSceneGL unit
for SeparateShapeStates optimization (although this accidentaly
didn't affect programs compiled with FPC 1.9.8).
view3dscene
updated to version 1.1.2,
rayhunter
updated to version 1.0.1,
malfunction
updated to version 1.0.3,
lets_take_a_walk
updated to version 1.0.3.
- All new versions are compiled using FPC 2.0.0 (Whohoo !
Finally new stable version of FPC !).
Comments on sources
page updated.
- You can now use FPC OpenGL bindings (gl, glu, glext units)
(slightly fixed, patches will be submitted to FPC team)
instead of my OpenGLh binding.
Just define USE_GL_GLU_UNITS.
In the future my OpenGLh unit may be removed, and I'll switch to
always using FPC OpenGL bindings.
- glplotter updated to
version 1.1.2: small bugfix: plots with "_" in names
- mandaty page added.
March 14, 2005:
- New versions of view3dscene
(1.1.1) and lets_take_a_walk
(1.0.2) allow somewhat more smooth camera moving:
when you try to step into the wall (or floor, or ceil, whatever),
your move is not completely blocked. Instead you are allowed to slowly
move alongside the wall.
This is implemented by new interface to
TMatrixWalker.OnMoveAllowed and new method TVRMLOctree.MoveAllowed.
- I removed units gtkglext and gdkglext from my sources,
they are now incorporated into FPC source tree.
Also some of my fixes to gtk2 bindings are submitted to FPC sources,
that's why I decided to remove gtkglext and gdkglext units
from my sources, since you would have to download newest
gtk2 bindings from FPC cvs anyway.
First part of optimizing OpenGL display using frustum culling
done: frustum culling without the help of octree done.
User-visible changes: added --renderer-optimization
parameter for view3dscene, see
view3dscene
page for docs of this parameter.
New view3dscene
menu commands "View|Show in Examine mode camera frustum",
"Console|Print current camera frustum".
Sources changes:
VRMLFlatSceneGL unit allows new optimization method:
roSeparateShapeStates.
VectorMath and MatrixNavigation: done routines to calculate
frustum's planes, and calculate frustum's geometry,
and check whether frustum collides with sphere and TBox3d.
TVRMLFlatSceneGL.RenderFrustum done.
Second part of optimizing OpenGL display using frustum culling
with the help of octree: done.
Done second octree based on scene ShapeStates.
view3dscene
creates it, and can display it's statistics.
TOctree.ItemsInNonLeafNodes property added to allow
octree nodes to store all cummulated items of their children.
TOctree.EnumerateCollidingOctreeItems implemented and
TVRMLFlatSceneGL.RenderFrustumOctree implemented.
Added to sources file units/vrml/opengl/README.optimization_notes
that describes how current optimization works, what are the possible
drawbacks and what are the possible alternatives (and what
drawbacks are hidden in those alternatives :).
In case you're interested how it works but you don't want to download
my whole sources, you can read this document
online.
gprof rulez — small bug that was harmless but was
causing a lot of slowdown in TVRMLFlatScene.ValidateFog
(combined with roSeparateShapeStates) fixed.
Also problem in VRMLFlatSceneGL with GL_COMPILE_AND_EXECUTE solved.
Also problem with updating Caption too often (this caused
some noticeable slowdown on XWindows on my system).
Example program units/vrml/opengl/simpleViewModel_2.dpr
added.
Mnemonics for GLWindow menus implemented.
view3dscene (1.1.1),
glViewImage (1.1.1),
glplotter (1.1.1),
bezier_curves (1.1.1)
all updated with mnemonics.
February 28, 2005:
- Finally, GLWindow unit may be based on GTK 2 instead of that old GTK 1.
Besides obvious usability benefits of using GTK 2, which is just
better than GTK 1, also fullscreen mode is now better (things like
gnome-panel don't cover your window).
view3dscene,
glViewImage,
glplotter,
bezier_curves
are updated (minor version number++, to 1.1.0,
Linux/FreeBSD users are encouraged to upgrade).
Inside sources, opengl/gtk/gtkglext/ directory is created with
GdkGLExt and GtkGLExt units.
- glWinEvents, menu_test_alternative, test_glwindow_gtk_mix
added to units/opengl/examples/
- All www pages marked in footer as licensed on GNU GPL,
added page explaining
why
I do not use GNU FDL.
- F5 is now the standard key shortcut for save screen
(F10 was conflicting with standard "drop menu" key on gnome and win32),
changed view3dscene,
malfunction,
lets_take_a_walk,
glplotter,
bezier_curves.
view3dscene and
glplotter
display FileDialog before saving screen.
- Switching to FPC 1.9.8. Some archives on these pages still remain with
binaries compiled with FPC 1.9.6, but I will replace them
at their next update. In any case, you should use FPC 1.9.8
if you're going to compile my code.
February 3, 2005:
Complete rework of Images unit interface.
Now it has object-oriented interface, much safer and cleaner.
Unfortunately compatibility with previous versions is broken.
Details:
Records TImageRec, TRGBImageRec, TAlphaImageRec are now replaced
with classes TImage, TRGBImage, TAlphaImage (and there's also TRGBEImage
class).
No functionality is lost, but now using these classes is
more straightforward,
no longer need to maintain "dummy" conversion routines
ImageRec(To|From)(RGB|Alpha).
Also now you can use Images unit to define new TImage descendant.
Also many things are now safer and checked by compiler at compile-time.
Also many docs updated and translated to English in Images unit.
Sources of most programs needed to be changed accordingly.
Changed: view3dscene,
glViewImage,
rayhunter,
malfunction,
kulki,
lets_take_a_walk,
bezier_curves.
Improvement in KambiPng/KambiZlib units:
Details:
Now programs using these units (e.g. indirectly by using Images unit)
do not require libpng+zlib to be installed on user system.
- view3dscene now runs without libpng and/or zlib installed.
When opening kings_head.wrl, it displays a warning:
view3dscene: WARNING: Exception ELibPngNotAvailable occurred when
trying to load texture from filename textures/crown.png :
LibPng is not available
and loads kings_head.wrl correctly (well, without texture
textures/crown.png).
- No need to define any symbol NOT_USE_LIBPNG at compilation of
programs that must not depend on libpng+zlib, but must depend on Images
unit (concerns glcaps and glcaps_glut).
GTK GLWindow: key shortcuts in menus are displayed and handled
entirely by GTK, not by some hacks in GLWindow unit.
Also WinAPI key shortcuts to menus are now displayed as they should
(justified to the right).
key shortcuts changed to conform to be more standard (I'm trying
to follow GNOME HIG, although I know that my programs are pretty
far from it right now), and also to not cause problems as GTK 1
or GTK 2 menu item shortcuts:
- glViewImage, glplotter: help: F1 (was: '?'),
- glViewImage, lets_take_a_walk, view3dscene, glplotter:
FullScreen on/off: Ctrl+F (was: Tab)
- bezier_curves: Delete selected point: d (was: delete)
Nothing selected: n (was: backspace).
(I think that backspace or delete or Ctrl+Shift+A would be a better
shortcut, but backspace or delete is impossible with GTK 1
and Ctrl+Shift+A is impossible because of temporary lacks in GLWindow
interface...)
All my Pascal programs get a version number.
Existing programs on these pages are initially marked as version 1.0.0.
Added page describing my versioning scheme.
All programs with version number accept -v
(or --version
)
command-line parameter to display version number.
Page with some notes about parameters understood by my programs updated.
From now on, all FPC programs on these pages will be compiled
with FPC 1.9.6. Compatibility with FPC 1.0.10 is dropped,
and I will do not even guarantee that my programs compile with FPC 1.9.4.
So all programs are recompiled and all sources updated,
sources
page is also updated.
Published imageToPas in units/images/tools/
.
Small example of MathExprParser unit in units/base/examples/kambi_calc.dpr.
Polish version of page with some notes about parameters understood by my programs is removed. Only English version will
be maintained from now on.
glViewImage has new Edit menu with some simple commands that change
viewed image. This was done mainly to basically test that these functions
work, but may be useful anyhow.
Fixed some problems with using --fullscreen-custom
under Win32.
Removed from sources many files that were needed only for FPC 1.0.10:
randomconf.inc, mtrand.pas, 10 files *_defpars.inc
UNIX (Linux, FreeBSD) versions of malfunction, kulki,
lets_take_a_walk again have ability to change screen resolution
(--fullscreen-custom
parameter)
that was not available due to bug in FPC 1.0.10.
Some usability problems with kulki solved.
January 12, 2005:
Added to sources
nice example programs that demonstrate some higher-level
functionality of my units:
units/opengl/examples/menuTest.dpr
(GLWindow with menu)
units/vrml/opengl/examples/simpleViewModel.dpr
(simple demo of loading and rendering VRML/3DS models and
allowing user to walk in them; something like extremely-simplified
view3dscene)
units/vrml/examples/many2vrml.dpr
(converting 3DS and others
to VRML)
Also
sources page updated with
comments about FPC 1.9.6 version. Also some small changes in sources,
as usual. Added 'xxx.dylib' library names for Darwin.
December 10, 2004:
Sources of units and view3dscene
updated: units and view3dscene compile with FPC 1.9.5 from CVS
from 2004-12-07 (at least under Linux), units/base/examples/
subdirectory with two small example programs.
December 5, 2004:
Sources of units
updated to commit many improvements to docs
(some translations to English and some preparations to generate
nice docs with pasdoc). No big changes.
Note: Don't expect any new things to happen on these pages
this month (I'm busy in some commercial project since some time,
and I probably won't have time this month).
However expect many work to happen here next year.
August 23, 2004:
- I ported all programs (except edytorek) to FreeBSD.
You can download FreeBSD releases (tar.gz archives) from pages
of appropriate programs.
- All Pascal sources updated,
and the page Pascal sources
itself is also updated (more detailed and up-to-date info about FPC
versions).
- Also, some small updates and bug-fixes for Linux and Windows.
All programs updated.
(August 7: another update of units' sources, small changes)
August 2, 2004:
- Updated sources of
standard units, view3dscene and rayhunter. Using correct FPC UNIX
RTL (instead of Libc always) with FPC 1.9.x basically done, everything
seems quite ready to be ported to other UNIX-like systems,
many comments translated to English and, as always, some random small
improvements.
31 July 2004:
- Various small internal changes/improvements in
sources, ProgressUnit improved.
- Polish versions of glViewImage and view3dscene docs removed,
they were too outdated.
27 June 2004:
- view3dscene updated:
"Configure scene loading" submenu
(it's just a GUI for
--scene-changes-xxx
command-line params)
- Some small updates: to HTML pages,
to malfunction
under Linux (no GTK dependency),
to lets_take_a_walk
under Windows (default device = DirectSound3D),
to rayhunter
(allowed warnings while loading scene)
- Many small improvements in
sources,
among other things units/Makefile supports separate compilation
of units and things are now more prepared
for pasdoc. Be ready for more sources updates in the near future —
I want to translate many things to English (both user docs
for some programs and comments in sources) and I want to generate
nice sources documentation using pasdoc.
29 May 2004:
- view3dscene updated:
- Big improvement: "Open File" menu item (key shortcut Ctrl+O),
i.e. finally changing loaded scene at runtime is fully allowed.
This also means that now you don't have to specify a filename
to open at command-line.
- Fixed treating of material transparency in OpenGL rendering,
now you can really see that various values for transparency
(like 0.1, 0.5, 0.9) make a difference.
Example VRMLs extended to confirm this:
new test scene transparent_materials.wrl.
- FPS timing after the very 1st frame fixed.
- view3dscene now honours AsciiText.justification value,
text.wrl file (in Example VRMLs) updated to demonstrate this.
- You can now change color of background in view3dscene using
comfortable dialog box. (GTK dialog box under Linux or WinAPI dialog box).
25 May 2004:
- bezier_curves updated: smooth interpolated curves
(smoothly connected Bezier curves) implemented,
changing colors (using color dialog box) implemented.
20 May 2004:
- view3dscene updated:
- small updates in interface ([l] key restored,
'...' added to some menu's Caption),
- view3dscene works with scenes with BoundingBox = EmptyBox3d,
- default texture minification method is now LINEAR_MIPMAP_LINEAR
(best looking),
- Added "When picking with left mouse button, show ..." menu
to control amount of information shown when picking objects
with left mouse button, this allows showing some extra info
aobut materials, lights and shadows, thus making picking
objects with mouse more usable.
- Small thing in VRML parsing corrected: SFString fields
not enclosed in double quotes are now parsed correctly.
- Example VRMLs
improved: added new tests (empty_xxx.wrl),
filenames reorganized, model castle.wrl greatly improved
(with nice textures !).
- malfunction updated:
level "sunny day" completely redesigned,
rest of levels corrected. I'm still not satisfied with these levels,
but at least now they are slightly better.
8th of May, 2004
- Finally ! Sources for Pascal programs are published !
Of course license is GNU GPL.
On 10th of May I added sources of malfunction and kulki.
This means that all programs available on these pages,
with the exception of edytorek, are distributed with sources.
- New program: bezier_curves
- Default main page is in English now. Alternative Polish version
is still available.
26th of April, 2004
- UI improved:
glViewImage and
view3dscene
now use GTK / Windows Open/Save file dialogs.
"Checked" menu items made possible,
view3dscene
and glplotter
improved.
view3dscene
uses special menus while raytracing.
- Some problems under Windows with some OpenGLs resolved
(somewhat random "Invalid floating point operation" errros)
- glViewImage :
Ctrl+O adds images to images list,
menu "Image list" is updated at runtime,
english docs improved, polish docs dropped.
13th of April, 2004
- On 10.04 my small page joined strike against software patents in Europe.
- glViewImage,
glplotter
updated: Linux (GTK) versions stabilized.
- view3dscene
updated:
Full English docs finally available.
Maintenance of Polish docs dropped. Many general reorganizations in docs.
Many changes in user interface in view3dscene too: some rarely used
key bindings removed (m, g, n), many parts of menu extended to something
more comfortable, "lights kind" replaced with 3 separate settings:
"light calculate", "head light", "use scene lights".
--lights-kind parameter dropped, new --light-calculate (should be much more
useful) parameter added.
Linux (GTK) version stabilized.
- Last but not least: first, unofficial release of sources of
rayhunter
is available here (link not available anymore).
Currently everything
is just packaged in one tar.gz file,
rayhunter-src.tar.gz (link not available anymore). Of course it's GNU GPL-licensed.
You need FreePascal Compiler
to compile this. You also need to slightly modify sources of FPC.
Here are diffs for FPC 1.0.10 and FPC 1.9.3 (link not available anymore).
Note that FPC 1.9.3 (downloadable
from FreePascal CVS server) requires considerably lesser amount of
"hacking" to compile rayhunter. If you use FPC 1.9.3, you will only have to
apply changes to packages/libc unit under Linux, and under Windows
everything should compile with unmodified FPC 1.9.3 version.
While with FPC 1.0.10 there are many more patches
and you will have to add some additional units.
So I strongly suggest you to use FPC 1.9.3.
18th of march, 2004: I updated view3dscene and glViewImage.
Now both programs have a useful menu bar, under Windows and Linux.
Under Linux this requires installation of GTK 1.x and gtkglarea libraries.
This is some attempt to make user interface of those programs a little
more friendly. I'm curious about your observations about this improvement —
how do you like it, how does it work under various Linux and Windows
versions etc.
I started to maintain this update log at 18th march, 2004.