forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Xors3D (http://forum.boolean.name/showthread.php?t=6180)

dsd 10.11.2011 22:42

Ответ: Xors3D
 

должно было нарисовать это. Но в принципе для меня это не критично, атлас я могу в отдельной проге сделать скомпиленной в режиме дебага.


0:00:00:01.372 Xors3d Engine version: 1.15.716.0 ( Sep 16 2011 )
0:00:00:01.372 OS: Microsoft Windows 7 Service Pack 1 (build 6.1.7601)
0:00:00:01.372 4 CPUs: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz at 2294MHz (MMX, SSE, SSE2, SSE3)
0:00:00:01.372 RAM: 3947 MBytes. Paged memory: 7893 MBytes.
0:00:00:01.388 Video: Intel(R) HD Graphics Family. VRAM: 128 MBytes.
0:00:00:01.388 Physical screen size: 344mm x 193mm. Aspect ratio: 1.78238 (40:23).
0:00:00:11.278 Xors3d Engine is released
Это со встроенным видео рисует только в дебаге


0:00:00:00.280 Xors3d Engine version: 1.15.716.0 ( Sep 16 2011 )
0:00:00:00.280 OS: Microsoft Windows 7 Service Pack 1 (build 6.1.7601)
0:00:00:00.280 4 CPUs: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz at 2294MHz (MMX, SSE, SSE2, SSE3)
0:00:00:00.280 RAM: 3947 MBytes. Paged memory: 7893 MBytes.
0:00:00:00.280 Video: Intel(R) HD Graphics Family. VRAM: 2014 MBytes.
0:00:00:00.280 Physical screen size: 344mm x 193mm. Aspect ratio: 1.78238 (40:23).
0:00:00:01.550 Xors3d Engine is released
с gt540m не рисует никак. Наверно в дровах дело? хотя качал сентябрьские с офф сайта

HolyDel 10.11.2011 23:02

Ответ: Xors3D
 
рисует "это" и в релизе и в дебаге.
win7, i7-2630QM, radeon HD 6850M, 8GB RAM

Program23 11.11.2011 19:07

Ответ: Xors3D
 
у меня черный квадрат Малевича
winXP, amd athlon , geoforce 7200gt, 512MB RAM

pozitiffcat 17.11.2011 10:26

Ответ: Xors3D
 
Вложений: 1
Че не нравится ксорсу в шейдере!!!
Can't create effect from file 'deferred.fx'!
ID3DXEffectCompiler: There were no techniques
ID3DXEffectCompiler: Compilation failed
это пишет лог
вот сам шейдер

pax 17.11.2011 10:33

Ответ: Xors3D
 
Вероятно то что он в utf8?

pozitiffcat 17.11.2011 10:58

Ответ: Xors3D
 
Цитата:

Сообщение от pax (Сообщение 210056)
Вероятно то что он в utf8?

и правда! мега спасибо

dsd 19.11.2011 16:35

Ответ: Xors3D
 
Код:

float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая
float4x4 matrixWorld : MATRIX_WORLD; // матрица мировая
float4x4 matrixCamView : MATRIX_VIEWPROJ;

в вершинном получаю:
Код:

output.position =mul(input.position, matrixWorld);
output.position =mul(output.position,matrixCamView);

что дает тот же результат, что и

Код:

output.position =mul(output.position,matrixCamProj);
Но когда я пытаюсь передать из хорса
matrixCamView
Код:

xSetEffectMatrix(entity,"matrixCamView",xGetViewProjMatrix(Camera),0);
а в шейдере

Код:

float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; // матрица итоговая
float4x4 matrixWorld : MATRIX_WORLD; // матрица мировая
float4x4 matrixCamView;

в вершинном получаю:
Код:

output.position =mul(input.position, matrixWorld);
output.position =mul(output.position,matrixCamView);

Происходит фэйл, ентити не рисуется и ошибки нет.
Что я делаю не так?

pozitiffcat 19.11.2011 18:13

Ответ: Xors3D
 
output.position =mul(input.position, matrixWorld);
output.position =mul(output.position,matrixCamView);
ты в выход сначала одно пишешь потом затираешь другим... это как так. Оно должно проканать?

dsd 19.11.2011 18:55

Ответ: Xors3D
 
Я сначала умножаю ентити на матрицу её позиции в мире, а затем я умножаю результат на произведение видовой и проекционной матрицы, тут сложней ошипка и не внутри шейдера все-таки

pozitiffcat 19.11.2011 19:27

Ответ: Xors3D
 
А точно.. не всматривался.. просто я обычно использую временные переменные поэтому тупанул

dsd 25.11.2011 15:49

Ответ: Xors3D
 
На идеологически правильную запись:
xSetEffectMatrix(entity, "matrixCamView",(float*)(*xGetViewProjMatrix(shade cam)), 0);
Оно мне пишет:
\bin\main.cpp|104|error: invalid type argument of 'unary *'|

Есть ли другой рабочий способ получить указатель на матрицы изнутри хорса?

.Squid 25.11.2011 19:53

Ответ: Xors3D
 
Эх, я забыл, что почти все указатели приводятся к типу Handle. Очередная хрень, связанная с поддержкой кучи языков.
В общем xGetViewProjMatrix на самом деле возвращает D3DXMATRIX*
У него есть оператор приведения к float*, который возвращает указатель на массив из 4х4 флоутов.
xSetEffectMatrix в качестве третьего параметра принимает float*.
Но вместо всех этих указателей в функциях фигурирует Handle.
Поэтому сначала надо Handle привести к D3DXMATRIX*, затем применить оператор (float*), и затем назад в Handle.
Для всех приведений надо использовать reinterpret_cast.

Прошу прощения за такой дебилизм. Если найду время, то постараюсь подправить генератор хедеров для С++.

pozitiffcat 16.12.2011 16:20

Ответ: Xors3D
 
Насчет смены разрешения экрана. Может сделать функцию которая изменяет размер окна и заново устанавливает вьюпорт относительно новых настроек в DX ?

pozitiffcat 17.12.2011 15:23

Ответ: Xors3D
 
И еще... у каждого загруженного объекта есть материалы... Было бы хорошо если бы была возможность присваивать файл эффекта на материал, и тем самым шейдер работал бы на всех sub объектах модели...

dsd 20.12.2011 14:55

Ответ: Xors3D
 
В новой ревизии больше не пишет ошибки компиляции шейдеров в лог. Это жестоко и негуманно.


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

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