Rev 9512 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9512 | Rev 9740 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | View3ds 0.076 - tiny viewer to .3ds and .asc files with several graphics |
1 | View3ds 0.077 - tiny viewer to .3ds and .asc files with several graphics |
2 | effects implementation. |
2 | effects implementation. |
Line 3... | Line 3... | ||
3 | 3 | ||
4 | What's new? |
4 | Whats new? |
5 | 1. Detecting manifold chunks procedure based on kind of sorted pivot |
5 | 1. More divs elimination comparing to ver 0.076, - grd_cat.inc file. |
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 |
6 | 2. Some 3ds object I have, reads with invalid normals - fixed. |
10 | in few seconds on i5 2cond gen. Earlier such objects calculating was |
7 | 3. Invalid submit edition bug - fixed. Smaller size of adjcent proc. |
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 | - | ||
Line 25... | Line 8... | ||
25 | 8 | 4. Edges detection fix. |
|
26 | 9 | ||
27 | 10 | ||
28 | Buttons description: |
11 | Buttons description: |
29 | 1. rotary: choosing rotary axle: x, y, x+y, keys - for object translate |
12 | 1. rotary: choosing rotary axle: x, y, x+y, keys - for object custom rotate |
30 | using keyboard. . |
13 | using keyboard - keys <, >, PgUp, PgDown. |
31 | 2. shd. model: choosing shading model: flat, grd (smooth), env (spherical |
14 | 2. shd. model: choosing shading model: flat, grd (smooth), env (spherical |
32 | environment mapping, bump (bump mapping), tex (texture mapping), |
15 | environment mapping, bump (bump mapping), tex (texture mapping), |
Line 38... | Line 21... | ||
38 | 3. speed: idle, full. |
21 | 3. speed: idle, full. |
39 | 4,5. zoom in, out: no comment. |
22 | 4,5. zoom in, out: no comment. |
40 | 6. ray shadow: calc ray casted shadows. |
23 | 6. ray shadow: calc ray casted shadows. |
41 | 7. culling: backface culling on/ off. |
24 | 7. culling: backface culling on/ off. |
42 | 8. rand. light: Randomize 3 unlinear lights( so called Phong's illumination). |
25 | 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 |
26 | 9. blur: blur N times; N=0,1,2,3,4,5 |
44 | 10.11,12,13. loseless operations (rotary 90, 180 degrees). |
27 | 10.11,12,13. loseless operations (rotary 90, 180 degrees). |
45 | 12. emboss: Do emboss effect( flat bumps ), use 'bumps deep' button to do edges |
28 | 12. emboss: Do emboss effect( flat bumps ), use 'bumps deep' button to do edges |
46 | more deep. |
29 | more deep. |
47 | 13. fire: do motion blur ( looks like fire ). |
30 | 13. fire: do motion blur ( looks like fire ). |
48 | 14. move: changes meaning x,y,z +/- buttons -> obj: moving object, camr: moving |
31 | 14. move: changes meaning x,y,z +/- buttons -> obj: moving object, camr: moving |
Line 59... | Line 42... | ||
59 | vertex, Pressing and moving left mouse button (cursor must be on handler)- change |
42 | vertex, Pressing and moving left mouse button (cursor must be on handler)- change |
60 | vertex position. If left mouse button is released apply current position. You may also |
43 | vertex position. If left mouse button is released apply current position. You may also |
61 | decrease whole handlers count by enable culling (using appropriate button) - some |
44 | decrease whole handlers count by enable culling (using appropriate button) - some |
62 | back handlers become hidden. |
45 | back handlers become hidden. |
Line 63... | Line 46... | ||
63 | 46 |