Модератор: Mikle
У меня поверхность воды не прямоугольная
. Границы поверхности "немного плывут" синхронно с волной. Не повлияет - ли это на дальнйшую стыковку.
Не думаю, что имеет смысл выносить 6 последовательных строк кода (QFreq и QTime) в отдельные функции, а тем более в модуль
.... трудно сказать в чем дело. Но вообще эта программа очень процессорозависима, поэтому FPS лучше смотреть в скомпилированном EXE.подсчет ФПС прошел неоднозначно (50-51 при первом пуске VB, 55-56 при последующем)
некуда применять! текстуру на воду придется натягивать всегда другую - под окружающий мир.
В FormLoad перед циклом поставь On Error Resume NextMikle писал(а): Если еще кто-нибудь разберется, почему оно прекрасно работает из бейсика, но не работает скомпилированное в Native-Code...
D3DXMatrixScaling Mtrx, 100!, 100!, 100!
D3DDevice.SetTransform D3DTS_WORLD, Mtrx
D3DDevice.SetTextureStageState 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR
Майкл, а нельзя ли ее как-нть обойти, а то некрасиво выходит... камера едит она едит, поворачиваюсь и она текстура поворачивается (некрасиво...текстура не имеет своего положения)... Я вот подумал, может можно так же как и снормалями tu tv считать?Mikle писал(а):2. Эта строка означает, что текстурные координаты берутся не из вертексов, а вычисляются, исходя из нормали и позиции камеры, и ПРИМЕРНО соответствуют текстурным координатам на сферической текстуре отражений.
Как я понял нужно делать так:Mikle писал(а):Vovik
Я уже пробовал вместо нормалей считать tu\tv, это годится для изометрии, а для перспективы рассчет СИЛЬНО усложнится.
А чтобы в варианте с нормалями текстура реалистично вращалась, нужно рассчитать матрицу, как для камеры, только БЕЗ СМЕЩЕНИЯ, то есть как камера, смотрящая всегда из точки 0, 0, 0. Потом для нее сделать обратную матрицу, и загнать ее в D3DTS_TEXTURE.
Dim Mtrx1 As D3DMATRIX
Dim d As Single
D3DXMatrixTranslation Mtrx, 0!, 0!, 0!
D3DDevice.MultiplyTransform D3DTS_WORLD, Mtrx
D3DXMatrixScaling Mtrx, 100!, 100!, 100!
D3DDevice.MultiplyTransform D3DTS_WORLD, Mtrx
D3DDevice.GetTransform D3DTS_WORLD, Mtrx1
D3DXMatrixInverse Mtrx1, d, Mtrx1
D3DDevice.SetTransform D3DTS_TEXTURE0, Mtrx1
Сейчас этот форум просматривают: Google-бот и гости: 1