kolibrios/programs/demos/view3ds/history.txt

234 lines
12 KiB
Plaintext
Raw Permalink Normal View History

View3ds 0.076 - XII 2021
1. Detecting manifold chunks procedure based on kind of sorted pivot
table. Chunks are counted and this number displayed.
2. New calculating normal vectors proc that use some data produced
by new chunks routine. Now big object loading is fast. I load object that
contains ~500000 vertices, ~700000 faces and ~2000 0000 unique edges
in few seconds on i5 2cond gen. Earlier such objects calculating was
rather above time limits.
3. On http://board.flatassembler.net occasionaly there are some disccusions
about optimizing. Some clever people, wich skills and competence I trust,
claims - for CPU's manufactured last ~15 years size of code is crucial
for speed. (Better utilize CPU cache).
So I wrote some 'movsd' mnemonics instead 'mov [edi],sth'; 'loop' instead
'dec ecx,jnz sth'. Moreover I come back to init some local varibles
by 'push' (flat_cat.inc). I took effort to change divisions to
multiplications two_tex.inc (works ok in fpu only Ext = NON mode and
of course in Ext = SSE3 mode), grd_tex.inc (single line not parallel
muls, whole drawing routine 4 divs instead 27 divisions),
bump_tex.inc - 3 divs in SSE2 mode.s See sources for details.
4. Editor button allows now editing by vertex all above 65535 vert objects.
----------------------------------------------------------------------------------
View3ds 0.075 - XII 2021
1. Cusom rotate using keys and mouse scroll support by Leency.
----------------------------------------------------------------------------------
View3ds 0.074 - IX 2021
1. Fixed emboss bug in grd lines displaying model.
2. Grd line exceedes screen problem fix.
3. New rendering model - ray casted shadows and appropiate button to
set 'on' this option. Note that is non real time model, especially when
complex object is computed. I took effort to introduce accelerating
structure - AABB (Axis Aligned Bounding Boxes).. but it is disabled
for now - seems to work incorrect(slow).
----------------------------------------------------------------------------------
View3ds 0.073 - may 2021
1. I introduced procedure for searching nonredundand edges.
2. Writing some info about object: vertices, triangles unique edges
count.
-----------------------------------------------------------------------------------
View3ds 0.072 - march 2021
1. New displaying model - texturing with bilinear filtering and transparency
simultanusly. Note that filtering is done only inside polygon. To better
quality of image there is a need to use floats coordinates of texture to pass
as arguments to single triangle rendering proc.
2. Optimizations.
3. SSE3 version runs correct on SSE2 cpus, but real phong, glass and
transparented texturing with filtering rendering models are disabled.
-----------------------------------------------------------------------------------
View3ds 0.071 - VIII 2020
1. New displaying model - glass - it's two pass rendering. First pass calculates
Z position of all front pixels, second render image with adding reflective
component of light only for front pixels. Transparent effect by adding with saturation.
2. I removed bug with performing generation object after choosing 'emboss' option.
-----------------------------------------------------------------------------------
View3ds 0.070 - VII 2020
1. Some keys support by Leency.
2. New displaying model - real Phong - real not fake normal vector interpolation,
normalising it and calculating dot product (one for each light).
It requires SSE3. (by me, Maciej Guba)
-----------------------------------------------------------------------------------
View3ds 0.069 - May 2020
1. KPacked files support by Leency.
2. 32bit vertices indexes and ability to load whole RAM limited objects.
(Above 65535 vertices and triangles), (by me).
3. I switch off painters algotithm mode (depth sorting). In app impelementetion it has
limited vertices count and produce less quality image than Z buffer Catmull algo.
In addition this switch off reduces app size, (by me).
-----------------------------------------------------------------------------------
View3ds 0.068 - XI 2016
1. Editing option - new 'editor' button.
2. For now I disable perspective correction, to make implemtation
of editing option easier.
-----------------------------------------------------------------------------------
View3ds 0.067 - XI 2016
1. Sizable app window.
-----------------------------------------------------------------------------------
View3ds 0,066 - X 2016
1. App window size according to current screen resolution.
2. New emboss procedure.
-----------------------------------------------------------------------------------
View3ds 0.065 - Feb 2015
1. Asc files support.
-----------------------------------------------------------------------------------
View3ds 0.064 - Nov 2012
1. Bug fixes.
-----------------------------------------------------------------------------------
View3ds 0.063 - X 2012
1. Postprocessing effect - wave. Ability to change amplitude and frequency.
-----------------------------------------------------------------------------------
View3ds 0.062 - VII 2012.
1. Counter fix by Mario.
2. New drawing model - smooth shaded lines (edges only view) by me.
-----------------------------------------------------------------------------------
View3ds 0.061 - Nov 2011.
1. Two new buttons to increase and decrease brightness.
-----------------------------------------------------------------------------------
View3ds 0.060 - Aug 2011.
1. Header fix by Leency.
2. SSE2 optimizations by me. (Most visable in BUMP_TEX mode.)
-----------------------------------------------------------------------------------
View3ds 0.059 - June 2011.
1. Bump and pararell two texture mapping functions optimizations.
(files bump_cat.inc & two_tex.inc)
On my P4 changes are rather non visable, but on dual core in KlbrInWin
optimizations runs preety nice.
-----------------------------------------------------------------------------------
View3ds 0.058 - June 2011.
1. Blur function optimization on SSE and SSE2 (buttons 'blur' and 'fire').
-----------------------------------------------------------------------------------
View3ds 0.057 - April 2011.
1. By opening file bigger then ~18 KB, and choosing env mode program terminate.
I remove this bug
-----------------------------------------------------------------------------------
View3ds 0.056 - February 2011.
1. MMX optimizations in 2tex mode (file two_tex.inc).
2. Tiny SSE optimizations (file BUMP_CAT.INC).
3. Bit (two instructions) improved random light generation procedure.
-----------------------------------------------------------------------------------
View3ds 0.055 - January 2011.
1. SSE optimizations (file BUMP_TEX.INC).
2. Compiles correctly in newest FASM.
-----------------------------------------------------------------------------------
View3ds 0.054 - December 2009 (Updated January 2010).
1. Skinned window by Leency.
2. Optimizations.
3. Re map texture, bumps option - allow spherical mapping around each axle (X,Y,Z).
4. Problem with too small memory to generate object fixed. (Problem ocurred with
house.3ds object and others objects contains less than 1000 faces and points).
-----------------------------------------------------------------------------------
View3ds 0.053 - (?) 2009
1. Optimizations.
-----------------------------------------------------------------------------------
View3ds 0.052 - November 2007.
1. Memory for file is allocated dynamically.
2. Optimizations.
Note: compiling correct only for KolibriOS.
-----------------------------------------------------------------------------------
View3ds 0.051 - October 2007.
1. More smooth texture mapping in tex and txgr shading model and others based on
tex3.inc, tex_cat.inc shading models.
2. Predefined three, I hope, nice lights.
-----------------------------------------------------------------------------------
View3ds 0.05 - (?) 2007
1. New shading model: cubic environment mapping with 1.5 kb light buffer.
2. Bumps optionally according to texture. ( It gives so called texture with
shifts in bumps + texture shading model. )
3. Bumps depth button.
-----------------------------------------------------------------------------------
View3ds 0.04 - March 2007.
1. New shading model: bump + texture. Only version with z coordinate
interpolation.
2. SSE optimizations ( files: two_tex.inc and bump_tex.inc )
-----------------------------------------------------------------------------------
View3ds 0.03 - March 2007.
1. Two shading models: smooth + texture, spherical environment mapping + texture.
Version only with z coordinate interpolation.
2. Bit changed rotary. I took attempt in SSE instuctions. ( matrix multiplication )
3. Color position depend drawing model instead spot light ( I hope,spot light come
back in future ).
-----------------------------------------------------------------------------------
View3ds 0.02 - December 2006.
1. New shading models - "spot" - spot light (only one, it's very CPU hungry model,
and there is no easy way to implement buffer) with light attenuation (In my
implmentation works not perfect); "dots" - app draws only points (with no culling).
2. Some loseless operations "mirror": according to each axis, rotary 90 degrees.
3. Postprocesing efects: Emboss (use blur to make edges more visable), fire ( be
carefull during `fire + embos`parallel using).
4. "Move" - Changes meaning of 'add vector' buttons:
used "obj" move object, "camr" move camera (in this option use culling = 'off'
I must make culling procedure bit advanced).
5. Generate button. Few objects generating (with bad normals)
6. Some optimizations on MMX.
7. I took an attempt to memory managing functions, but it decreased speed (no aligned
memory in Menuet functions?)
There is really much work to do and I see disorder in app code.
Greetings for all, especially Madis Kalme for .3ds files support and good vibrations. ;)
Merry Christmas and happy new year.
-----------------------------------------------------------------------------------
App View3ds ver 0.01 - November 2006.
1. Object generating (for now only one). When no parameter specified or error occured
during reading file from disk, app generate object. No teapot.3ds needed on ramdrive,
but, if this file exist it would be read as default.
2. Bug in read_from_file procedure fixed. (In May, when I made shading light vector
depend, I demaged bit Madis' procedure.)
3. Backface culling on/off option. (Some objects need culling off - they have mismatched
normal vectors. Example: iron.3ds, sink.3ds, the generated one.)
4. Random lights procedure.
5. Spherical (instead old - planar ) bump, texture mapping.
6. Bit improved menu.
7. Blur.
-----------------------------------------------------------------------------------
App "View3ds" - it's very early, still unfinished version but I want show you it.
Based on earlier demos.
1. 3ds object import as a parameter ( for now only short names supported )
I updated Kfar app - it can run view3ds with parameter. You must copy it on
ramdrive. You could do such funny thing: Run updated Kfar in KolbrInWin,
before them set in KolInWin.ini file path to ramdrive, where yo have "view3ds",
choose 3ds file ... Emulator will run View3ds with selected file.
If no parameter specified, app try open tpot.3ds from ramdrive. If tpot.3ds
don't exist on rd, app hang.
2. Many lights. Every light - unlinear model ( Phong illumination ). For now
no light setting option.
3. Light buffer for grd, flat model.