forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   Sigel (http://forum.boolean.name/showthread.php?t=4960)

HolyDel 17.02.2009 14:36

Ответ: Sigel
 
FDsagizi, вобщем я их и хочу выкинуть. а террайн у меня ето совсем другая история, он рендерится не как сюрфейс, поэтому набор данных для вершины может быть разный.

100 000 скрытых объектов и фпс уже падает до 90. похоже надо как то оптимизировать списки.

HolyDel 17.02.2009 17:09

Ответ: Sigel
 
Вложений: 1
вот. тут две парные демки.
в первой рендерится 10000 кубов. можно срелками возить камеру.
по умолчанию они все в кадре.

во второй - создано 100000 кубов. но они все перемешаны так, что за раз ренерятся только 1000-6000 кубов, остальные режутся фрустумом.

вобщем хочу знать примерный фпс для четырех ексешников.

кстати, обнаружилась интересная особенность блица, у него даже если объект не во фрустуме (т.е не рендерится) все равно отнимает некоторое время. странно.

SBJoker 17.02.2009 19:18

Ответ: Sigel
 
frustumcost.exe - 6-7
manyentites.exe - 34-35
TestCostEntity.exe - 58-60
TestCostFrustum.exe - 56

HolyDel 17.02.2009 20:11

Ответ: Sigel
 
изменения:
Цитата:

1) убраны цвета вершин
2) добавлены команды Entity::Color, Entity::Alpha
3) добавлена команда sys::Memory возвращающая количество памяти занимаемой вашей программой.
4) немного ускорен перебор объектов

Taugeshtu 17.02.2009 23:34

Ответ: Sigel
 
Frustrumcost - 6/--
manyentites - 29 если все в кадре, 45 если камера примерно в центре облака
TestCostEntity - 47/250
TestCostFrustrum - 38 если камера в центре куба и 47 если отъехать на его грань (примерно)
Кстати, в этих демках сайджел ОЧЕНЬ хреново альт-табился... Вернее, сворачивался легко, а вот разворачиваться не хотел - зависал

HolyDel 17.02.2009 23:37

Ответ: Sigel
 
ээээ. там же окно?

HolyDel 20.02.2009 19:55

Ответ: Sigel
 
добавил возможность поворота сюрфейса.
Surface::Rotate(float pitch, float yaw, float roll)

moka 01.03.2009 19:05

Ответ: Sigel
 
Зря ты отобрал цвет вершин. Предположим мне нужно реализовать аналогию веса вершин, но использовать нужно данное вершины. Предположим это ветер на листву, таким образом, использовать можно цвет вершин - тем самым указывая силу влияния ветра на вершину.
Применений может быть уйма, к примеру в реалтайм пройтись в цикл всего по 30 вершинам с перекраской - не такая и сложная на цпу задача. Зато хранение неких данных.
К примеру посмотри Tech Demo разрушаемости машины в Far Cry 2. Там есть карта деформации, чисто/грязно, кровь. Так вот использовать плавано переходящие цвета от вершин - очень удобная штука. Таким образом мы храним данные о неких картах. В глубоких техниках для шейдеров, используется максимально много данных которые хранятся в памяти вершины.

HolyDel 01.03.2009 19:08

Ответ: Sigel
 
МоКа. цвет вершин будет. тока будет включаться флагом, как в блице.
Если нужны дополнительные атрибуты вершин- то для етого будет специальная техника.
Во-первых, там можно будет реализовать больше 4 компонентов на вершину.
Во-вторых цвет может отрезаться кривыми драйверами до 0..1

К примеру сейчас внешним атрибутом являются тангенты для вершин.

jimon 01.03.2009 19:08

Ответ: Sigel
 
MoKa
для такого можно делать выборку из текстуры

moka 01.03.2009 19:11

Ответ: Sigel
 
jimon, какраз из-за гемороя внесения изменений и ресурсоёмкого процесса работы с текстурами в реальном времени, да и такая точность не нужна, поэтому и юзаются вершинные данные.
Темболее выборку из текстуры делать в вершинном шейдере, для простого позиционирования вершины, перемножив сиилу верта на простой цвет - много проще и эллементарнее, чем юзать текстуры, для хранения подобных данных. Да и много больше видео памяти съест..

HolyDel 01.03.2009 19:12

Ответ: Sigel
 
jimon, выборка из текстуры? Это нужно делать в пиксельном шейдере. Или в вершинном на SM3.0. Если для требуемого эффекта подходит тупая интерполяция между вершинами, то лучше использовать атрибуты вершин. Вершин меньше, чем пикселей, поэтому так будет быстрее. Да и тексторная выборка не самая быстрая операция.На крайняк можно использовать цвет или uv с другого слоя.

moka 01.03.2009 19:31

Ответ: Sigel
 
Олег, сколько тексутрынх слоёв максимум потдерживается?
Всёже вес вершин наиудобнейший метод хранения весьма специфических данных, учитывая удобства покраски вершин в графических редакторах и их визуальное отображение. (для деббагинга и художникам проще)

HolyDel 01.03.2009 19:42

Ответ: Sigel
 
двиг - 32.
видюха, естественно меньше.
моя например - 8.

ты имел ввиду цвет вершин? я согласен, довольно удобно. но есть проблема - цвет - байт. т.е принимает значения от 0 до 255. Насколько я знаю приводится к 0..1 в конвеере.
И вообще, для дополнительных данных вершин используется довольно красивая техника - дополнительные атрибуты. Я ее пока еще не реализовал, но тем ни менее... она есть!

moka 01.03.2009 19:58

Ответ: Sigel
 
HolyDel, про доп слыхал. Но к примеру если будешь их испоьзовать, и например узко напрявлять движок. Например на First/Third View. FPS/RPG/Racing, тогда можно и интегрировать допустим систему растительности, и снабдить стандартным функционалом и софтом. Например коэффицент ветра рисуется по вершинам и сохраняется в эти дополнительные данные, но тебе нужно будет и отобразить в редакторе - к примеру простой аналогичный вершинному цвету, только юзая этот параметр, шейдер. Если таких планов нету (я думаю нету), то удобнее будет расчитывать на удобства фичей самого цвета вершин, к примеру в использовании в связке с 3д максом. Да и 0-255 - цвет тоже ведь, шаг=0.0039 а это весьма будет незаметно. 8 бит точности на канал, предостаточно.
А доп параметры это хорошо :)
Вот блиц к примеру юзает только 2 текстурных сета. Какие поколения видях начинают использовать более 2ух?

HolyDel 01.03.2009 20:12

Ответ: Sigel
 
ага. про цвета очень верно подмечено что их видно в редакторе. И художник может их настраивать как хочет и ему будет сразу видно.

>Какие поколения видях начинают использовать более 2ух?
а черт его знает. ты лучше приведи пример когда могут понадобиться больше 2 именно слоев uv - координат. Именно как тк, а не дополнительные параметры вершины для шейдера.

moka 01.03.2009 20:29

Ответ: Sigel
 
HolyDel, по идеи там не 2D (UV) вектор, а 3D (UVW), хм, когда нужно реально много инфы передать.. :) К примеру первый это простой диффуз, второй это карта освещения, а третий для спец просчёта, какойнить содержащий ещё другую инфу, например ветор к источнику света - не придётся вычислять его для статики..

HolyDel 02.03.2009 20:25

Ответ: Sigel
 
пофиксил мастер 2005 студии. раньше приложение не работало в дебаг режиме.

HolyDel 03.03.2009 05:30

Ответ: Sigel
 
Вложений: 2
добавил сортировку полупрозрачных объектов.
проверьте плиз на адекватность.
должно быть примерно как на скрине.
в демке тысяча объектов (примерно 900 полупрозрачных). идет отрисовка с сортировкой

+ добавил команду Camera::ClearColor(r,g,b,a). Которая задает цвет отчистки.
+ добавил воспроизедение Theora на цпу (раньше было только на гпу)

HolyDel 03.03.2009 20:35

Ответ: Sigel
 
поставил на второй комп ати.
странно, но там работает и феора и мд2 (через шейдер).
интересно почему у остальных не работает.
правда работает очень медленнннно.

кстати на ати очень фигово работала синхронизация с системой.
все жутко висло. (я так понял izeg0re под "хреново альт-табится" подразумевал именно это? у меня к примеру помогал только ресет ((. а я до последнего не знал что написал такое говно (((( )
теперь наладил.

кстати, на последних драйверах инится огл3 на ати. и на нвидии тоже.

HolyDel 04.03.2009 02:40

Ответ: Sigel
 
Вложений: 1
сделал сортировку стейтов. это позволило чучуть усокрить вывод графики.

space - применить сортировку (назад ее отменить нельзя)
Z - отменить шейдеры (назад их применить нельзя)

как тестить:
1) дождитесь пожалуйста стабилизации фпс. обычно на это уходит 5-10 сек.
2) запомните фпс
3) нажмите пробел
4) запишите сюда фпс_было / фпс_стало
5) перезапустите ексешник
6) нажмите Z
7) повторите пункты 1-4

можно также написать какая видеокарта.

-=Jack=- 04.03.2009 09:39

Ответ: Sigel
 
Оба последних примера выкидывают неопознаную ошибку(точнее вылетают и запускают отладчик студии.

Лог:

Logging start

Init extensions

GL_ARB_shadow exists
GL_ARB_shadow_ambient exists
GL_ARB_vertex_shader exists
GL_ARB_fragment_shader exists
GL_ARB_shader_objects exists
GL_ARB_shading_language_100 exists
GL_EXT_gpu_shader4 exists

glGenBuffersARB init
glBindBufferARB init
glBufferDataARB init
glDeleteBuffersARB init
glDrawRangeElements init
glCompressedTexImage2D init
glDrawArraysInstancedEXT not init
glDrawElementsInstancedEXT not init
glActiveTexture init
glCreateShaderObjectARB init
glProgramParameteriEXT init
glCreateProgramObjectARB init
glAttachObjectARB init
glDetachObjectARB init
glDeleteObjectARB init
glShaderSourceARB init
glCompileShaderARB init
glLinkProgramARB init
glValidateProgramARB init
glUseProgramObjectARB init
glGetObjectParameterivARB init
glGetInfoLogARB init
glUniform1fARB init
glUniform1iARB init
glUniform1fvARB init
glUniform2fvARB init
glUniform3fvARB init
glUniform4fvARB init
glGetUniformLocationARB init
glEnableVertexAttribArrayARB init
glVertexAttribPointerARB init
glDisableVertexAttribArrayARB init
glBindAttribLocationARB init
glGetAttribLocationARB init
glIsRenderbuffer init
glBindRenderbuffer init
glDeleteRenderbuffers init
glGenRenderbuffers init
glRenderbufferStorage init
glGetRenderbufferParameteriv init
glIsFramebuffer init
glBindFramebuffer init
glDeleteFramebuffers init
glGenFramebuffers init
glCheckFramebufferStatus init
glFramebufferTexture1D init
glFramebufferTexture2D init
glFramebufferTexture3D init
glFramebufferRenderbuffer init
glGetFramebufferAttachmentParameteriv init
glGenerateMipmap init
glPointParameterfvEXT init

wglSwapIntervalEXT init
wglGetSwapIntervalEXT init
wglChoosePixelFormatARB init
wglCreateContextAttribsARB init

Init extensions success

multisampling :0
win pixel format
Полная аппаратная поддержка
Pixel Format:14
bits:32
accum:0
depth:24
stencil:0
flags:549
OpenGL 3.0 supported. Try init
VENDOR:ATI Technologies Inc.
RENDERER:ATI Radeon HD 2600 PRO

HolyDel 04.03.2009 10:33

Ответ: Sigel
 
-=Jack=-, это весь лог?

я выяснил. похоже это ошибка в драйверах 9.1 в 9.2 ее пофиксили.

-=Jack=- 04.03.2009 19:55

Ответ: Sigel
 
Весь, сейчас скачаю 9.2 - проверю.

HolyDel 05.03.2009 00:00

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

Сообщение от MoKa (Сообщение 97454)
4. Альфа сортировка?
6. Слыхал ещё про сортировку стейтов - что очень мощно оптимизирует.

4. теперь есть. пока сделал сортировку раз в 100 кадров. + возможность отсортировать вручную (например при резком переносе камеры) SortAlphaEntites().

6. заюзал. дало ускорение от 20 до 50%. думаю в худшем случае (например очень легкая геометрия и очень тяжелый вершинный шейдер) сортировка с каши в упорядоченную систему может ускорить вывод в 2-3 раза. в среднем случае не думаю что даст больше 5-10 процентов перфомаранса.
На данный момент вручную - SortEntitesListByState() (наверное будет alias на эту функцию через какой нибудь менеджер конвеера). Что то не могу придумать как сделать по человечески автоматом. Каждый кадр - тупо. Стейты далеко не каждый кадр меняются. При изменении стейта ентити - тоже не катит. Возможны ситуации, когда в рантайме меняются стейты у многих объектов - будет тормозить. Раз в определенный промежуток времени - вариант кажется самым оптимальным, но... если стейты не меняются - то и сортировать ничего не надо. Делать ненужную сортировку, пусть и рпаз в 10 сек. например - меня жаба давит. Менять флаги в методах изменения стейтов - некрасиво. Да и опять же, жаба душит.

moka 05.03.2009 00:16

Ответ: Sigel
 
А можно реализовать счётчик?
К примеру, какие функции отвечяют за смеуну стейтов? Пользовательские вызовы?
Думаю нужно завязать счётчкик, и дать возможность кодеру указать, примерно спустя сколько перемен делать вызов пересортировки. Если конечно есть возможность аккуратно подсчитать.

HolyDel 05.03.2009 01:07

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

К примеру, какие функции отвечяют за смеуну стейтов?
ну наприер:
somenetity->BindShader(someshader);
сменили шейдер - сменился стейт.
также его меняет переключение бленда с непрозрачного на прозрачный и обратно.
смена текстуры.
смена source (грубо говоря - геометрии)

так вот - тупо привязываться нельзя. ибо:пользователь может КАЖДЫЙ кадр менять какой то стейт (например видеотекстура, или там шейдер от лода зависит). И что теперь? каждый кадр сортировать - ну уж нет. сортировка куда дороже дельты меду рендерем неотсортированого и отсортированого списка.

надо привязываться как то с умом. в принципе можно делать сортировку, скажем не чаще чем раз в 10 секунд.

moka 05.03.2009 02:43

Ответ: Sigel
 
А можно дать функцию, и когда вызовешь в цикле, тогда и при рендере отсортится?

HolyDel 05.03.2009 03:01

Ответ: Sigel
 
это один из вариантов.
я уже говорил его минус - сортировки будут работать в холостую. жрать ресурсы. на 10к объектов полная сортировка может потребовать окола 100мс.
даже раз в 100. даже раз в 1000 кадров мне жалко вхолостую сортировать список.

о! появилась идея. нужно считать сами переключения. шейдеров. текстур. и т.д. и если число переклчюений превышает некоторый порог - то проводить сортировку.

можно вообще сделать некий PerfomaranceAnalyzer который и будет заниматься анализом производительности. т.е. решать как часто сортировать списки, управлять load bias и прочим.

HolyDel 05.03.2009 19:27

Ответ: Sigel
 
Вложений: 1
вот. демка аналогичная Lost-овской. 4096 кубов.

у меня на ати выигрывает его.
на нвидии - моя.

-=Jack=- 05.03.2009 21:07

Ответ: Sigel
 
160 фпс(когда видно все(сверху)).
Если там должны быть шейдеры, альфа и прочее - ничего нет.

HolyDel 05.03.2009 21:15

Ответ: Sigel
 
нет. там ничего нету. это тупо вывод 4к кубов. с одним сюрфейсом и одной текстурой.

moka 05.03.2009 23:50

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

о! появилась идея. нужно считать сами переключения. шейдеров. текстур. и т.д. и если число переклчюений превышает некоторый порог - то проводить сортировку.
Эмм..
Цитата:

К примеру, какие функции отвечяют за смеуну стейтов? Пользовательские вызовы?
Думаю нужно завязать счётчкик, и дать возможность кодеру указать, примерно спустя сколько перемен делать вызов пересортировки. Если конечно есть возможность аккуратно подсчитать.
Олег, Ы? Я это же и предложил..

HolyDel 06.03.2009 00:43

Ответ: Sigel
 
извини, я думал ты предложил поставить счетчик в функции смены стейтов. например
someent->BindShader(sh1); - сменили шейдер. внутри Entity::Shader инкремент счетчика.

а я хочу счетчик поставить в сами текстуры, шейдеры и т.д.
т.е. внутри Shader::Bind увеличиваем счетчик.

хотя если подумать - это тоже не лучший вариант.

HolyDel 06.03.2009 20:37

temprorary post
 
Вложений: 3
left mouse -добавить одиночную декаль
right mouse - рисовать декаль раз в 10 кадров (недолго)
space - создать сотню декалей в кадр. режим введен специально для тех, кто думает что рисовать в текстуру долго. лично у меня он снижает фпс с 430 до 420.

system req:
6xxx или круче.
на моей ати (HD2600XT) заработало, как на других будет - хз.

да, не юзайте пожалуйста, сглаживание. толку от него не будет, а ресурсы сожрет.

jimon 06.03.2009 21:11

Ответ: Sigel
 
HolyDel
ничего так, в 1600*1200 fullscreen 780 фпс, железо 9600 gt
в оконном режиме начинаются траблы, видимо размер viewport'а у тебя никак не меняется с размером окна, тогда уж изволь не разрешать изменять размер окна, а то текст фпс оказывается за пределами рисуемой области в 1600*1200 оконном режиме при физическом разрешении монитора в 1600*1200

SBJoker 06.03.2009 23:19

Ответ: Sigel
 
1280*1024 фулскрин
~2000 в простое
~1860 с зажатым пробелом

ABTOMAT 06.03.2009 23:51

Ответ: Sigel
 
Вложений: 2
Олег, ну что ты за ресурсы кладёшь? :((( Неужели так трудно найти качественные текстуры?
Маленько проэнхенсил на скорую руку
1150 FPS
1100 - задавил пробел

Ахтунг! При выходе подвисает на 5-6 сек! (и с твоими текстурами тож)

HolyDel 07.03.2009 01:18

Ответ: Sigel
 
Вложений: 3
демка тест попиксельного пика.
также тестируется маскед текстуры и фбо (пробел).

для показа тысячи спрайтов. (50 обновлений в кадр, 50 пиков в кадр) нажмите - Z

ожидаемый feedback - фпс без Z и с Z.

-=Jack=- 07.03.2009 12:52

Ответ: Sigel
 
400 фпс без пиков
100 с
2 глюка:
1. http://s58.radikal.ru/i159/0903/98/05a109e6bd96.jpg
2. после нажатия на пробел - http://s52.radikal.ru/i136/0903/ec/0d582e9b9175.jpg

HolyDel 07.03.2009 13:02

Ответ: Sigel
 
спасибо!
пробел - недокументированая фича :)
а вот глюк с пиком - серьезный (пикается там, где ничего нет). я его борю но пока еще не ясно кто кого.

HolyDel 12.03.2009 20:36

Ответ: Sigel
 
Прикрутил FBO. теперь нормально используется depth-буфер.
Потихоньку прикручиваю скелетную анимацию.

NitE 12.03.2009 20:41

Ответ: Sigel
 
скажи насколько двиг готов к настоящему действию ? а то тесты и т.п. это здорово но надо и игры делать ))

HolyDel 12.03.2009 20:53

Ответ: Sigel
 
думаю процентов на 5 готов к настоящему действию.
еще два процента можно отбить добавив скелетку и нормальные child<->parent отношения.

впрочем 2д тетрис и щас можно писать))

HolyDel 13.03.2009 20:55

Ответ: Sigel
 
Нашел слабое место в сижеле. По скорости создания \ удаления \ копирования объектов сижель заметно отстает от блица, хорса и других движков.

moka 13.03.2009 23:09

Ответ: Sigel
 
Есть идеи как это править? Для игр с большим миром и поточной загрузкой - это будет весьма неприятно.. :)

HolyDel 13.03.2009 23:14

Ответ: Sigel
 
я пока не нашел конуретную затычку. пока занят скелеткой и child<->parent человеческими.

но, думаю поправить все можно :) а то стыдно блицу проигрывать в таком важном параметре.

ABTOMAT 13.03.2009 23:17

Ответ: Sigel
 
Ну не знаю, у меня в РПГ в цикле ничего не создаётся и не копируется, так что к тормозам это бы не привело :)

HolyDel 13.03.2009 23:56

Ответ: Sigel
 
сделал загрузку текстур из ресурсов exe.
правда только bmp и только в true color

HolyDel 14.03.2009 15:03

Ответ: Sigel
 
Вложений: 1
вот, проверьте плиз, будет ли работать:

ABTOMAT 14.03.2009 20:38

Ответ: Sigel
 
работает

NitE 14.03.2009 22:45

Ответ: Sigel
 
работает

moka 15.03.2009 00:14

Ответ: Sigel
 
А как насчёт и остальной медии, как понимаю это не очень сложно, главное организовать чтение информации из ехе.
А хранится она как набор пикселей, или как текст всего файла?
При чтении из ехе, не происходит временное копирование?

NitE 15.03.2009 00:17

Ответ: Sigel
 
зачем делать запаковку медий в exe когда намного более важные вещи ещё не сделаны ?

HolyDel 15.03.2009 00:29

Ответ: Sigel
 
MoKa, не, произвольный набор байт я пока не знаю как записать в exe и уж тем более как его оттуда прочитать.

ABTOMAT 15.03.2009 00:37

Ответ: Sigel
 
Я так вообще против записи ресурсов в ехе... Вот ты сделал игру, запаковал в ехе, выложил, а потом понадобилось патч сделать. И что, новый ехе со всеми ресами весом n*10 метров опять выкладывать?
А для защиты ресов нужно использовать иные методы.
Ну а если уж очень приспичило делать всё в одном ехе, то есть такие вещи как MoleBox например, где уже любое чтение реализовано из ехешки.

HolyDel 15.03.2009 00:41

Ответ: Sigel
 
я вобще эту фишку задумывал чисто для небольших заставок. для них более менее критично чтобы исполняемый файл был один. для игр (кроме тетрисов) мне это кажется ненужным, и, может даже лишним.

ах да - временное копирование выполняется (memcpy) не думаю что это критично.

HolyDel 15.03.2009 19:34

AnimSprite Smooth mode
 
Вложений: 1
потестите плиз еще одну демку.
это продвинутая версия анимированных спрайтов
1 - обычный режим
2 - режим сглаженный. За него приходится платить вдвое большем числом трисов и вдвое большим филлрейтом. Он нужен для плавной интерполяции кадров. Т.е если в самой текстуре кадров немного, а сама анимация должна длиться сравнительно долгое время, тогда становится заметна резкая смена кадров, что дает неприятный эффект. В общем сами все увидите :)

интерполяция сделана на FFP, такчто должно работать у всех.
Скажите, заметна ли визуально разница в 1-ом и 2-ом режиме, заметна ли разница в производительности?

NitE 15.03.2009 19:47

Ответ: Sigel
 
в первом режиме как-будто слайд-шоу, т.е. анимация через кадр 3800 fps
во втором анимация плавная, красивая но фпс уже 2800

impersonalis 15.03.2009 21:32

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

Сообщение от ABTOMAT (Сообщение 100683)
Я так вообще против записи ресурсов в ехе... Вот ты сделал игру, запаковал в ехе, выложил, а потом понадобилось патч сделать. И что, новый ехе со всеми ресами весом n*10 метров опять выкладывать?

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

ABTOMAT 15.03.2009 23:04

Ответ: Sigel
 
2130 и там и там (странно?). Сглаженное - да, выглядит хорошо) Но имхо юзер двига мог бы сиё сделать и самостоятельно -> лучше заняться решением более насущных задач.

З.Ы. Сделай пожалуйста нормальный Mouselook (то есть когда мышку крутишь влево то камера крутится влево а не наоборот, + центрирование мыши в середину окна чтобы не выходила за пределы). Ещё нужно чтобы окно программы после его создания сразу же вылазило на первый план, а то я запускаю ехе и у меня окно проводника поверх игры. Пока я мышкой лезу вверх чтобы переключить на другое окно то там уже всё вовсю крутится -> неприятно.
Делов исправить это - 5 минут, а тестить станет гораздо удобнее, потому что такие мелочи бесят и портят впечатление от демки.
Я бы не писал этого, но уже повторяется от демки к демке.

HolyDel 15.03.2009 23:14

Ответ: Sigel
 
самостоятельное решение было бы тормознее раза в два. тем более мне просто захотелось это сделать. сам понимаешь чем грозит увеличение числа ентити. тем более полупрозрачных ;)

замечания учту, спасибо (вернее попробую учесть, и, если как исправить mouselook есть идеи, то что делать с окном я пока не знаю, ибо у меня этот баг не воспроизводится(( )

ABTOMAT 15.03.2009 23:25

Ответ: Sigel
 
Я и не говорил что нужно сделать доп. ентити
Принудительно WinApi'ем делай окно активным

HolyDel 15.03.2009 23:35

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

Я и не говорил что нужно сделать доп. ентити
а как тогда? если на FFP? разве что увеличить число кадров в самой текстуре.

Цитата:

Принудительно WinApi'ем делай окно активным
я это и делаю!
Код:

        ShowWindow( hWnd, SW_SHOW );
        SetForegroundWindow( hWnd );
        SetFocus( hWnd );
        UpdateWindow(hWnd);

проблема в чем то еще.


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

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