Rev 9237 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
9512 | IgorA | 1 | View3ds 0.076 - tiny viewer to .3ds and .asc files with several graphics |
8014 | leency | 2 | effects implementation. |
5486 | leency | 3 | |
8014 | leency | 4 | What's new? |
9512 | IgorA | 5 | 1. Detecting manifold chunks procedure based on kind of sorted pivot |
6 | table. Chunks are counted and this number displayed. |
||
7 | 2. New calculating normal vectors proc that use some data produced |
||
8 | by new chunks routine. Now big object loading is fast. I load object that |
||
9 | contains ~500000 vertices, ~700000 faces and ~2000 0000 unique edges |
||
10 | in few seconds on i5 2cond gen. Earlier such objects calculating was |
||
11 | rather above time limits. |
||
12 | 3. On http://board.flatassembler.net occasionaly there are some disccusions |
||
13 | about optimizing. Some clever people, wich skills and competence I trust, |
||
14 | claims - for CPU's manufactured last ~15 years size of code is crucial |
||
15 | for speed. (Better utilize CPU cache). |
||
16 | So I wrote some 'movsd' mnemonics instead 'mov [edi],sth'; 'loop' instead |
||
17 | 'dec ecx,jnz sth'. Moreover I come back to init some local varibles |
||
18 | by 'push' (flat_cat.inc). I took effort to change divisions to |
||
19 | multiplications two_tex.inc (works ok in fpu only Ext = NON mode and |
||
20 | of course in Ext = SSE3 mode), grd_tex.inc (single line not parallel |
||
21 | muls, whole drawing routine 4 divs instead 27 divisions), |
||
22 | bump_tex.inc - 3 divs in SSE2 mode.s See sources for details. |
||
23 | 4. Editor button allows now editing by vertex all above 65535 vert objects. |
||
24 | |||
25 | |||
8719 | leency | 26 | |
27 | |||
5486 | leency | 28 | Buttons description: |
9512 | IgorA | 29 | 1. rotary: choosing rotary axle: x, y, x+y, keys - for object translate |
30 | using keyboard. . |
||
6769 | IgorA | 31 | 2. shd. model: choosing shading model: flat, grd (smooth), env (spherical |
32 | environment mapping, bump (bump mapping), tex (texture mapping), |
||
33 | pos (position shading depend), dots (app draws only points - nodes of object), |
||
34 | txgrd (texture mapping + smooth shading), 2tex (texture mapping + spherical |
||
35 | environment mapping), bmap (bump + texture mapping), cenv (cubic environment |
||
8666 | dunkaist | 36 | mapping), grdl (Gouraud lines - edges only), rphg (real Phong), glas (glass effect), |
37 | ptex (real Phong + texturing + transparency). |
||
6769 | IgorA | 38 | 3. speed: idle, full. |
5486 | leency | 39 | 4,5. zoom in, out: no comment. |
9237 | leency | 40 | 6. ray shadow: calc ray casted shadows. |
6769 | IgorA | 41 | 7. culling: backface culling on/ off. |
42 | 8. rand. light: Randomize 3 unlinear lights( so called Phong's illumination). |
||
43 | 9. Blur: blur N times; N=0,1,2,3,4,5 |
||
5486 | leency | 44 | 10.11,12,13. loseless operations (rotary 90, 180 degrees). |
9237 | leency | 45 | 12. emboss: Do emboss effect( flat bumps ), use 'bumps deep' button to do edges |
8719 | leency | 46 | more deep. |
5486 | leency | 47 | 13. fire: do motion blur ( looks like fire ). |
9237 | leency | 48 | 14. move: changes meaning x,y,z +/- buttons -> obj: moving object, camr: moving |
8719 | leency | 49 | camera, wave: x,y +/- increase, decrease wave effect frequency and amplitude. |
5486 | leency | 50 | 15. generate: Generates some objects: node, Thorn Crown, heart... |
51 | 16. bumps: random, according to texture. |
||
52 | 17. bumps deep -> create bumps deeper or lighter. |
||
9237 | leency | 53 | 18. re-map tex -> re-map texture and bump map coordinates, to change spherical |
8719 | leency | 54 | mapping around axle use 'xchg' and 'mirror' buttons, then press 're-map tex' button. |
5486 | leency | 55 | 19. bright + -> increase picture brightness. |
56 | 20. bright - -> decrease picture brightness. |
||
57 | 21. wav effect -> do effect based sine function. |
||
8719 | leency | 58 | 22. editor -> setting editing option. If is "on" then red bars are draw according to each |
59 | vertex, Pressing and moving left mouse button (cursor must be on handler)- change |
||
9237 | leency | 60 | vertex position. If left mouse button is released apply current position. You may also |
8719 | leency | 61 | decrease whole handlers count by enable culling (using appropriate button) - some |
62 | back handlers become hidden. |
||
5486 | leency | 63 | |
9512 | IgorA | 64 | Maciej Guba XII 2021 |