flat assembler
Message board for the users of flat assembler.

Index > Windows > win3ds

Goto page Previous  1, 2, 3, 4, 5
Thread Post new topic Reply to topic

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 17 Apr 2021, 10:19
Former times I read an article described how achive graphicc in poor ascii text mode. Author suggest do it by programming character generator. It allows making exact 'per pixel' graphics with 16 colors, still being in text mode. (This time it were DOS times).

BTW My ostrich scene (presented on screenshot to last ver28 ) was fully made in win3ds app. I hope you like it. Very Happy
Post 17 Apr 2021, 10:19
View user's profile Send private message Visit poster's website Reply with quote

Joined: 06 Jan 2011
Posts: 410
Location: Ukraine
idle 17 Apr 2021, 10:45
Of course i do!
One day (after i set up my life to better mode, hahaa self irony)... ok, you know).
Post 17 Apr 2021, 10:45
View user's profile Send private message Reply with quote

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 09 Nov 2021, 15:07
Version 29 is out.


What's new in version 29?
1. Saving chunks id to separate file. Each triangle has adjacent
chunk id. Saving under 'save obj.' button. This button saves
also object in 3ds and asc format. File name is 'chunks.bin'.
2. Separate button called 'Ray shadows', to perform ray casted
shadows. When this button is marked 'on', ray casted image
is: first - calculated, next after them computed image is
displayed. Pressing once again this button, and set 'off' -
"normal" rendering mode with rotation come back.
3. Searching for internal vertices option. 'Mark in vr' button
perform this option.
4. Button 'Rm TIV NIE' - removing triangles with internal vertices
and non intersected edges with any other triangle. By internal
vertices I mean vertices that coordinates are in closed volume
inside 3d object. Before performing this option search for
collided edges (button 'Ma Coll Ed' set 'on') and search for
internal vertices (button 'Mark in vr' set 'on'). This
'Rm TIV NIE' option simplified and clean object.
5. 'Tes TIV IE' button - teslating triangles with inside vertices
and without intersecting edges. Buttons 'Ma Coll Ed' and
'Mark in vr' must be set 'on'.
6. 'Rm cracks' button - remove cracks. After teslation of chosen
area of object (not whole} wrong declared triangles in
triangles net may take place such unneeded artifact: Along
edge is an vertex thats only touch edge but is not possesed
by this edge. Routine adjacent to this button cure this
situation. Only verts thats are in the middle are computed;
This proc is launched after each tesalting procs, but
sometimes need to be repeated when numeric errors arise.
Its not needed when not part, but whole object is teslated.
I have some ideas how to improve this routine. (Or rather
whole rewrite from scratch).
7. Loading chunks from 3ds file. Chunks are counted. Button
'Show chunk' perform displaying bars which color is unique to
every chunk. User may invert sense of normal vectors or
delete whole chunk triangles and vertices using 'Invert chn'
and 'Del. chunk' buttons. Triangles, vertices and edges
parameters are calculated after each using. (May take some

Maciej Guba, November 2021.
Enjoy !


Last edited by macgub on 09 Dec 2021, 17:32; edited 1 time in total
Post 09 Nov 2021, 15:07
View user's profile Send private message Visit poster's website Reply with quote

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 09 Dec 2021, 17:30
ver 30
whats new wrote:
What's new in version 30?

1. New detecting manifold chunks procedure and based
    on it, new calculating normal vectors proc. This new
    routine shows how good algo can improve performance.
    On my i5 2cond gen earlier I wait abaut 15 minutes, 
    or longer to load object contains ~500000 vertices and
    ~700000 faces. Now its done in few seconds. This
    shows me future way to go to.
2. Sizable app window.

                                  Maciej Guba, December 2021.
                                  Enjoy ! 

I attach screenshot to display new features. (Quite big object loaded. Object made not by me.)

To download ver 30 visit my page..

Filesize: 80.85 KB
Viewed: 3012 Time(s)


Last edited by macgub on 25 Feb 2022, 16:50; edited 1 time in total
Post 09 Dec 2021, 17:30
View user's profile Send private message Visit poster's website Reply with quote

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 25 Feb 2022, 16:48
Hey !!
New version of my app. Maybye someone intrested...

What's new in version 31?

1. New function for merge vertices (remove redundand) from teslate area.
Setting teslate area - 'set t.area' button. Merge - 'Rm red ver' button -
remove redundand vertices.
2. Button 'Z redu care' for merge vertices options. Take care about Z
coord when merge is launched. (off/on) options are avialable.
3. Executbale file not included in package. I get infecetd on some malware -
- vir sets all files and directoriies from usb sticks attribute to "hidden"
and "system". If you get sick: - To reset this attributes use "attrib -S -H z: /D" command.
In z: place insert letter of infected drive.
To get executables compile win3ds31.asm file from /src directory.
4. New teslation from selected teslate area function. (use 't&d wh|pos' button
to select if all triangles or only triangles with positiv Z coeficient of normal
vector will be teslated and 'Tes Wh/Tar' button to select if whole object
or only from selected teslate area will be teslated (use first 'whol' and
second 'Whol' and hit 'do triang' button a few times - will fast produce object
~1000000/~1500000 vertices, some side opperations will be avoid...))
5. Bit polished edges calculating function. (Bug of inaccurate deteting if edge
possesed only by one triangle was on the end). This fix allow properly teslate
some objects - bug in previous versions.
6. Bit fixed flat shading function.
7. Merge verts, teslate, calculate chunks, remove unused verts functions based
on sorted pivot tables. I use qsort function on previously mixed list to sort -
this allow fast work on big objects.

Maciej Guba, Feb 2022.
Enjoy !

To download visit my page..

Last edited by macgub on 07 May 2022, 12:50; edited 2 times in total
Post 25 Feb 2022, 16:48
View user's profile Send private message Visit poster's website Reply with quote

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 06 May 2022, 15:26

What's new in version 32?

At first thanks all who use my app. I think this people must have many
of patience and lenency for my soft and for me. Sorry all that it crashes,
hang, works slow and other annoying disturbing situations.

1. For full functions app use sse4. On sse3 cpus some functions are disabled.
I prepare sse2 version for old fashioned people. App is windows XP+.
I tested executables on my see2, sse3 and sse4+ machines.

2. Fixing normal vectors posibility - Do random rotary
and parallel projection two times with disabled and enabled backface
culling. Triangles that was rendered first time and not second time
have non correct sense of normal vector. (Render operation is performed
only in iside memory area, non displayed on screen.) Pressing a few
times this button make posible cure mismatched sense of normal vectors.

3. Possibility for scale freshly joined object (M key), only along X and Y axis.
First set 'NextM edit' button 'on' and use mouse and its left button and move
green bar displayed on /edit area/.

4. I rewrite some 'shame' FPU only procs - (calculating colors buffer, doing
environment mapping).

5. Less branches on triangles proc (3flat_f, 3stencil). This allow faster
performing 'remove inside faces' and 'mark inner vertices' options. They
run using many cpu cores. 'rm inside fac' on up to 4 cores, 'mrk in vert'
up to 16 cores (I limit used cores count because every core use some
amount of ram witch is limited for 32bits app) ,but I tested it only on
4 cores so bugs may occur..

6. I tried bmp, pcx basic load ('X' key) -- very buggy.

7. I made texture mapping +/- posibility.

8. Posibility to clone/copy current object. Such clone has increased
'x' coordinate, this value can be set throug 'set ap tol' button, according
to appropiate flag.

9. I extended bit informations about user interface.. (readme.txt file)

I attach some objects in (3ds format), I done in win32ds app. Its Easter scene and some chip visulization.

Maciej Guba, May 2022.

Edit: link to executables. Check for malware!!
Bit changed version, will work nice in windows 10. Cleaned bump_tex triangle rendering procedure, less branches and divisions.. I renew bit app UI descripition (readme.txt)...

sources - http://macgub.co.pl/win/win3ds/32/win3ds32b.zip

Description: chip..
Filesize: 16.07 KB
Viewed: 1987 Time(s)


Last edited by macgub on 15 Oct 2022, 13:14; edited 1 time in total
Post 06 May 2022, 15:26
View user's profile Send private message Visit poster's website Reply with quote

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 15 Oct 2022, 13:12
hey !


What's new in version 33?

1. I try unify first stage of some rendering triangle functions -
(first sorting triangle cooef, two loops of horizontal line calling).
For real Phong based functions first phase resides in glass_tex.inc file,
for some others in bump_tex.inc file.
2. In real Phong lighting model based functions, in case it contains texturing
component I pass tex params as floats. All RP but peeling function have this
3. I add sort chunks button. It performs chunks sorting, and preparing some
chunks info struct - contains max, min, middle of vertices, whole triangles
number in chunk.
4. I renew removing cracks proc. Now dont destroyed manifold structure of object,
works faster.
5. I add editing separate chunks posibility (rotate, scale, translate/move in x,
y and z direction).
6. I renew teslate triangles with at last one collided edge and at last on inside
vertex procedure.
7. Old bug - non correct generating long pipes was removed.
9. I abandon pcx texture using (routines by Thomas Matys) - it is GPLed, and
I for know release my app without licence - I dont took right, definitive
decision about it.
9. Besides above I tried made some refractoring code cleaning effort..

Knowed bugs/release info:

1. App don't display shadows in point light rendering model.
2. 'Z' coord problems in flat - integer Z model. I think all
this model procs are to throw out - its redundant (even worse)
comparing to flat with float z interpolation model.
3. Displaying normal vectors - not works in all displaying models.
4. App is unstable - it may crash in any time - be ready..

My applications, documents I generate; perhaps knowledge (still tiny
comparing to most people) about programming, rendering 3d; is based
on work, repeating, rethinking about some aspects I am busy. I dont
know if large amount of people are intrested in reading, using this
garbage. Anyway, I hope, at last few people get something good
from my stuff...

Maciej Guba, October 2022.
- to download visit - http://macgub.co.pl

Last edited by macgub on 26 Nov 2022, 15:02; edited 1 time in total
Post 15 Oct 2022, 13:12
View user's profile Send private message Visit poster's website Reply with quote

Joined: 21 Apr 2012
Posts: 1363
Roman 18 Nov 2022, 17:59
Do you have asm code intersection 3d sphere with plane or triangle ?
With plane normal.
Post 18 Nov 2022, 17:59
View user's profile Send private message Reply with quote

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 20 Nov 2022, 13:12
Only triangle intersection procedure is included in win3ds sources. Triangle - edge to be precise.

For ray - sphere - check http://macgub.co.pl/menuet/ray01.zip
Its demo for MenuetOS and KolibriOS, but I dont know it will be usefull for you. From my point of view, its hard to isolate appropiate code from this stuff, albeit I created it - its my own... (some bit shame code Wink ).

Best regards!
Post 20 Nov 2022, 13:12
View user's profile Send private message Visit poster's website Reply with quote

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 26 Nov 2022, 15:01
New version - to download if someone intrested..


What's new in version 34?

1. I introduce selected chunk 'bend' edition posibility.

2. I add possibility to mirror reflection (according x axis)
of selected manifold chunk.

3. I tried introduce some optimizing object work. Attempt
perform situation - every chunk will have sorted,
coninuus part in vertices list. (Under 'sort chunks'
button). - not yet its disabled...

4. Now texture coordinates passed to peeling procedure
(weighted sorted transparency) are float.

5. I introduce new procedural generated 3d mesh - under
'cur object' button- need furnish...

6. I remove some previus (33) version bugs - non correct
motion blurr, non rendered shadows in corresponding
render model.

8. I done more refractoring, cleaning code work. So I tried,
unify edition routines - universal 'edit_particle_no'
variable. It describes vertex, face, edge, chunks, pipe
derives index No. I unify edition submitting, some
triangles first step calling, decrease size of loops
and other minor changes.

9. I assume that best testing soft is using it. So try done
a few meshes, add new options I currently need. I gives
me some fun and makes detect and isolate some bugs easier.
I done one ilustrated pdf to describe, how I build one of
this 3d objects..

Maciej - Nov 2022

edit - I delete attachments, add links..

An ilustrated pdf - story how I build 'smiled face' mesh, and this mesh I mentioned..

Sources, some 3d models craeated in my app - winter scene and an 'smiled egg', some info about user interface...

Last edited by macgub on 04 Feb 2023, 17:29; edited 1 time in total
Post 26 Nov 2022, 15:01
View user's profile Send private message Visit poster's website Reply with quote

Joined: 11 Jan 2006
Posts: 304
Location: Poland
macgub 04 Feb 2023, 17:25
I have prepared new version, maybye somone want take a look...

whatsnew.txt wrote:
What's new in version 35?
1. More refractoring work - split fist step of gouraud
   based triangle functions (sorting cooeficientes, delta
   calculating, two calling loops) into one. See files
   3grd_tex.inc and 3grd_cat.inc.

2. I unify call routines to all 4 threads rendering
   models - (real Phong based procedures, and ray casted
   shadows procedure).

3. At start program detect vertical resolution -
   if it's below 900 pixels right side menu (buttons,
   info area, "Next edit" area) height is shrinked.

4. I delete 3flat_cat.inc file (contains flat shading
   procedure with integer Z coordinate interpolation).
   Its redundand.

5. Now flat shadows on textured background are avialable
   in every rendering model. ("Shadows" button.)

6. I increase "Next edit" edition posibilities - so bend,
   xyz/xy scale, rotating avialable in modes - freshly
   joined (M key) next object, separate chunk and whole
   object. Use "NextM edit"  menu button.

7. Now saved files 3ds, asc, chunks binary formats have
   letter from 'A' to 'Z' in its name. Value is increased
   - when 'Z' letter is achived  next 'A' is switched.

8. Attempt to write to 3ds files objects above 65536
   vertices and triangles. In that cause single chunk
   should not exceed 65535 elements - otherwise will be
   clipped. This new save feature is very buggy. If
   object has below 2^16 elements - old saving method
   is performed after pressing 'save obj.' button.

9. 'FFD' button - allow free form deformation based on
   single Bezier patch.

10. I tried improve manual -> see appropriate pdf.


Description: sources, example 3ds models, pdf with short manual, ..
Filename: win3ds35.zip
Filesize: 582.95 KB
Downloaded: 31 Time(s)

Post 04 Feb 2023, 17:25
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3, 4, 5

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum

Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.