forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   ClipPlane из dx7test.dll (http://forum.boolean.name/showthread.php?t=8480)

SKA_DIMKA 15.06.2009 21:05

ClipPlane из dx7test.dll
 
Есть вот такие функции в dx7test.dll но как их использовать???
Может кто-то сталкивался??

GetClipPlane%(index,ClipPlane*):"_GetClipPlane@8"
SetClipPlane%(index,ClipPlane*):"_SetClipPlane@8"

SKA_DIMKA 15.06.2009 21:08

Ответ: ClipPlane из dx7test.dll
 
Вложений: 1
Вот сами dll'ки...

Knightmare 15.06.2009 21:37

Ответ: ClipPlane из dx7test.dll
 
Ну это клипплейны. Передаешь указатель на него и ДХ будет отсекать геометрию по этой плоскости.

SKA_DIMKA 15.06.2009 23:49

Ответ: ClipPlane из dx7test.dll
 
Цитата:

Сообщение от Knightmare (Сообщение 107666)
Ну это клипплейны. Передаешь указатель на него и ДХ будет отсекать геометрию по этой плоскости.

Да эт канеш знаю) Но вот видел например пример вообще клипплейна на Блитзе там уж кода многа а это думаю как то быстрее будет и удобней, или я не прав??

Меня интересует как реализовать это отсечение, в смысле примера с использованием этой функции)

Knightmare 15.06.2009 23:53

Ответ: ClipPlane из dx7test.dll
 
Плоскость в данном случае это a, b, c, d, т.е. 4 флоата. Судя по формату функции она хавает банки блитзевские (хотя могу и ошибатся, не юзал), т.е. банально строишь плоскость (как - знает учебник геометрии), упаковывешь в 16 байтную структуру типа:
PHP код:

struct Plane
{
    
float abcd;
}; 

И передаешь ее указатель в эту функцию (как это конкретно на блитзе делается я хз). Все собственно.
З.Ы. Если памятьь не отказывает железо держит 6 клипплейнов, т.е. index в данном случае длежит в диапазоне [0; 5]

SKA_DIMKA 16.06.2009 00:02

Ответ: ClipPlane из dx7test.dll
 
Цитата:

Сообщение от Knightmare (Сообщение 107673)
Плоскость в данном случае это a, b, c, d, т.е. 4 флоата. Судя по формату функции она хавает банки блитзевские (хотя могу и ошибатся, не юзал), т.е. банально строишь плоскость (как - знает учебник геометрии), упаковывешь в 16 байтную структуру типа:
PHP код:

struct Plane
{
    
float abcd;
}; 

И передаешь ее указатель в эту функцию (как это конкретно на блитзе делается я хз). Все собственно.
З.Ы. Если памятьь не отказывает железо держит 6 клипплейнов, т.е. index в данном случае длежит в диапазоне [0; 5]

Ага, это я тоже слышал но вот смотри на счет плоскости так пайдет?
иль чисто CreatePlane() ???
Код:

Global Mesh_layer=CreateMesh()
surf=CreateSurface(Mesh_layer)
  ver0= AddVertex (surf,0,0,0,0,1)
  ver1= AddVertex (surf,1,0,0,1,1)
  ver2= AddVertex (surf,1,1,0,1,0)
  ver3= AddVertex (surf,0,1,0,0,0)
AddTriangle (surf,ver2,ver1,ver0) : AddTriangle (surf,ver2,ver0,ver3)

И еще про упаковку в 16 байтовую структуру раскажи не слышал(((

В Ashadow там эта функция в водичке используется...но как работать с ней чет не разберусь((( Собсно мне для этой же цели она и нужна)

Knightmare 16.06.2009 00:06

Ответ: ClipPlane из dx7test.dll
 
1. Нет так ты не получишь плоскости. Еще раз говорю - учебник геометрии знает формулу плоскости, а также как построить ее по трем точкам например (способов много на самом деле). Ищи, читай.
2. Раздел Bank в хэлпе.


Часовой пояс GMT +4, время: 13:45.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot