Rev 6509 | Rev 6513 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6509 | Rev 6510 | ||
---|---|---|---|
Line 342... | Line 342... | ||
342 | fstp dword[edi+offs_obj_x_scale] |
342 | fstp dword[edi+offs_obj_x_scale] |
343 | .end: |
343 | .end: |
344 | ret |
344 | ret |
345 | endp |
345 | endp |
Line -... | Line 346... | ||
- | 346 | ||
346 | 347 | ;description: |
|
347 | ;ãáâ ®¢ª ®à¬ «¥© ¤«ï £à ¥© |
348 | ; ¢ëç¨á«¥¨¥ ®à¬ «¥© ¤«ï £à ¥© ¯® 3-¬ ¢¥àè¨ ¬ |
348 | align 4 |
349 | align 4 |
349 | proc obj_set_normals, o_data:dword |
350 | proc obj_set_normals, o_data:dword |
350 | locals |
351 | locals |
351 | tbl1 rd 9 ;ebp-72 |
352 | tbl1 rd 9 ;ebp-72 |
Line 394... | Line 395... | ||
394 | sub esi,72 ;tbl1 |
395 | sub esi,72 ;tbl1 |
395 | sub edi,36 ;tbl2 |
396 | sub edi,36 ;tbl2 |
396 | ;v1 <-> v2 |
397 | ;v1 <-> v2 |
397 | fld dword[edi+12] |
398 | fld dword[edi+12] |
398 | fsub dword[edi] |
399 | fsub dword[edi] |
399 | fstp dword[esi] ;(x1-x2) |
400 | fstp dword[esi] ;(x2-x1) |
400 | fld dword[edi+16] |
401 | fld dword[edi+16] |
401 | fsub dword[edi+4] |
402 | fsub dword[edi+4] |
402 | fstp dword[esi+4] ;(y1-y2) |
403 | fstp dword[esi+4] ;(y2-y1) |
403 | fld dword[edi+20] |
404 | fld dword[edi+20] |
404 | fsub dword[edi+8] |
405 | fsub dword[edi+8] |
405 | fstp dword[esi+8] ;(z1-z2) |
406 | fstp dword[esi+8] ;(z2-z1) |
406 | ;v2 <-> v3 |
407 | ;v2 <-> v3 |
407 | fld dword[edi+24] |
408 | fld dword[edi+12] |
408 | fsub dword[edi+12] |
409 | fsub dword[edi+24] |
409 | fstp dword[esi+12] ;(x2-x3) |
410 | fstp dword[esi+12] ;(x2-x3) |
410 | fld dword[edi+28] |
411 | fld dword[edi+16] |
411 | fsub dword[edi+16] |
412 | fsub dword[edi+28] |
412 | fstp dword[esi+16] ;(y2-y3) |
413 | fstp dword[esi+16] ;(y2-y3) |
413 | fld dword[edi+32] |
414 | fld dword[edi+20] |
414 | fsub dword[edi+20] |
415 | fsub dword[edi+32] |
415 | fstp dword[esi+20] ;(z2-z3) |
416 | fstp dword[esi+20] ;(z2-z3) |
416 | ;v3 <-> v1 |
417 | ;v3 <-> v1 |
417 | fld dword[edi] |
418 | fld dword[edi+24] |
418 | fsub dword[edi+24] |
419 | fsub dword[edi] |
419 | fstp dword[esi+24] ;(x3-x1) |
420 | fstp dword[esi+24] ;(x3-x1) |
420 | fld dword[edi+4] |
421 | fld dword[edi+28] |
421 | fsub dword[edi+28] |
422 | fsub dword[edi+4] |
422 | fstp dword[esi+28] ;(y3-y1) |
423 | fstp dword[esi+28] ;(y3-y1) |
423 | fld dword[edi+8] |
424 | fld dword[edi+32] |
424 | fsub dword[edi+32] |
425 | fsub dword[edi+8] |
425 | fstp dword[esi+32] ;(z3-z1) |
426 | fstp dword[esi+32] ;(z3-z1) |
Line 426... | Line 427... | ||
426 | 427 | ||
427 | ;a1,a2,a3 |
428 | ;A = (y2-y1) * (z3-z1) - (z2-z1) * (y3-y1) |
428 | fld dword[esi+4] |
- | |
429 | fmul dword[esi+8] |
- | |
430 | fstp dword[edi] ;a1=(y1-y2)*(z1-z2) |
- | |
431 | fld dword[esi+16] |
- | |
432 | fmul dword[esi+20] |
- | |
433 | fstp dword[edi+4] ;a2=(y2-y3)*(z2-z3) |
- | |
434 | fld dword[esi+28] |
429 | fld dword[esi+4] |
435 | fmul dword[esi+32] |
430 | fmul dword[esi+32] |
- | 431 | fld dword[esi+8] |
|
436 | fstp dword[edi+8] ;a3=(y3-y1)*(z3-z1) |
432 | fmul dword[esi+28] |
- | 433 | fsubp |
|
- | 434 | fstp dword[eax] ;set normal.a |
|
- | 435 | ||
- | 436 | ;B = (z2-z1) * (x3-x1) - (x2-x1) * (z3-z1) |
|
- | 437 | fld dword[esi+8] |
|
437 | ;b1,b2,b3 |
438 | fmul dword[esi+24] |
438 | fld dword[esi] |
- | |
439 | fmul dword[esi+8] |
- | |
440 | fstp dword[edi+12] ;b1=(x1-x2)*(z1-z2) |
- | |
441 | fld dword[esi+12] |
- | |
442 | fmul dword[esi+20] |
- | |
443 | fstp dword[edi+16] ;b2=(x2-x3)*(z2-z3) |
- | |
444 | fld dword[esi+24] |
439 | fld dword[esi] |
- | 440 | fmul dword[esi+32] |
|
445 | fmul dword[esi+32] |
441 | fsubp |
- | 442 | fstp dword[eax+4] ;set normal.b |
|
446 | fstp dword[edi+20] ;b3=(x3-x1)*(z3-z1) |
443 | |
447 | ;c1,á2,á3 |
444 | ;C = (x2-x1) * (y3-y1) - (y2-y1) * (x3-x1) |
448 | fld dword[esi] |
- | |
449 | fmul dword[esi+4] |
- | |
450 | fstp dword[edi+24] ;c1=(x1-x2)*(y1-y2) |
- | |
451 | fld dword[esi+12] |
- | |
452 | fmul dword[esi+16] |
- | |
453 | fstp dword[edi+28] ;c2=(x2-x3)*(y2-y3) |
- | |
454 | fld dword[esi+24] |
445 | fld dword[esi] |
455 | fmul dword[esi+28] |
- | |
456 | fstp dword[edi+32] ;c3=(x3-x1)*(y3-y1) |
- | |
457 | - | ||
458 | fld dword[edi] |
- | |
459 | fadd dword[edi+4] |
- | |
460 | fadd dword[edi+8] |
- | |
461 | fstp dword[eax] ;set normal.a |
- | |
462 | fld dword[edi+12] |
- | |
463 | fadd dword[edi+16] |
- | |
464 | fadd dword[edi+20] |
- | |
465 | fstp dword[eax+4] ;set normal.b |
446 | fmul dword[esi+28] |
466 | fld dword[edi+24] |
447 | fld dword[esi+4] |
467 | fadd dword[edi+28] |
448 | fmul dword[esi+24] |
468 | fadd dword[edi+32] |
449 | fsubp |
Line 469... | Line 450... | ||
469 | fstp dword[eax+8] ;set normal.c |
450 | fstp dword[eax+8] ;set normal.c |
470 | 451 | ||
471 | add edx,8 ;à §¬¥à âà¥ã£®«ì¨ª = (3 ¢¥àè¨ë (¯® 2¡) + ᢮©á⢠(2¡)) |
452 | add edx,8 ;à §¬¥à âà¥ã£®«ì¨ª = (3 ¢¥àè¨ë (¯® 2¡) + ᢮©á⢠(2¡)) |
Line 830... | Line 811... | ||
830 | mov edx,[edi+offs_obj_normals_tri_data] |
811 | mov edx,[edi+offs_obj_normals_tri_data] |
831 | @@: |
812 | @@: |
832 | ; |
813 | ; |
833 | bt dword[draw_mode],bit_light |
814 | bt dword[draw_mode],bit_light |
834 | jnc .norm |
815 | jnc .norm |
835 | ;[obj_normals_tri_count] |
- | |
836 | stdcall [glNormal3fv], edx |
816 | stdcall [glNormal3fv], edx |
837 | add edx,12 |
817 | add edx,12 |
838 | .norm: |
818 | .norm: |
839 | ; |
819 | ; |
840 | movzx ebx,word[eax] ;1-ï ¢¥àè¨ |
820 | movzx ebx,word[eax] ;1-ï ¢¥àè¨ |
Line 1036... | Line 1016... | ||
1036 | align 4 |
1016 | align 4 |
1037 | @@: |
1017 | @@: |
1038 | add esi,2 |
1018 | add esi,2 |
1039 | ;word[esi] - ®¬¥à âà¥ã£®«ì¨ª |
1019 | ;word[esi] - ®¬¥à âà¥ã£®«ì¨ª |
1040 | movzx ebx,word[esi] |
1020 | movzx ebx,word[esi] |
- | 1021 | ;®à¬ «¨ ¤«ï ®á¢¥é¥¨ï |
|
- | 1022 | bt dword[draw_mode],bit_light |
|
- | 1023 | jnc .norm |
|
- | 1024 | mov eax,ebx |
|
- | 1025 | imul eax,12 |
|
- | 1026 | add eax,[edi+offs_obj_normals_tri_data] |
|
- | 1027 | stdcall [glNormal3fv], eax |
|
- | 1028 | .norm: |
|
- | 1029 | ||
1041 | shl ebx,3 |
1030 | shl ebx,3 |
1042 | add ebx,[edi+offs_obj_tri_data] |
1031 | add ebx,[edi+offs_obj_tri_data] |
Line 1043... | Line 1032... | ||
1043 | 1032 | ||
1044 | movzx eax,word[ebx] ;1-ï ¢¥àè¨ |
1033 | movzx eax,word[ebx] ;1-ï ¢¥àè¨ |