#41
29 декабря 2009 в 09:38
[quote author=jeank link=topic=597.msg13274#msg13274 date=1262038650]<br />Очередная проблема.<br /><br />Сегодня обнаружилось, что новые драйвера Nvidia 195.62 не запускаются ни с портом, ни с оригинальной игрой.<br /><br />Есть какая-то методика определения причин ошибки?<br />[/quote]<br /><br />Тема давно обсосана со всех сторон.<br />Это просто большой опенгл экстекшен стринг не влизает в ком_принтф<br />А так как там не сейф функция прога падает<br />http://www.quakedev.com/forums/index.php?topic=1871.0
#42
29 декабря 2009 в 10:57
Мой предел не знает признательности, вернее наоборот, моя признательность не знает пределов :)<br /><br />Усё исправил, попробую на свежих драйверах.<br /><br />Надеюсь, похожих приколов больше нет? <br />И как понимаю, теперь большинство старых opengl игр будет вылетать...
#43
29 декабря 2009 в 13:25
в настройке драйвера надо выставить ограничение вервии гл.<br />на версии 3 ориг ку не падает.<br />В ку3 и на их движке этой проблемы нет тк сделано заранее как у нас)<br />
#44
29 декабря 2009 в 14:08
Что интересно, в оригинальном коде возле той функции был коммент:<br /><br />// FIXME: make a buffer size safe vsprintf?<br /><br />Как понимаю, краш vsprintf с драйверами выше 190 произошел потому, что список поддерживаемых ими расширений перевалил за указанный предел массива в 4кб.
#46
01 января 2010 в 14:52
Мужики, спасибо за вашу помощь, и всех с наступившим поздравляю!!!<br /><br />По сто грамм за удачу в этом и следующих годах!!! 8)
#48
08 января 2010 в 10:06
[quote author=jeank link=topic=597.msg13305#msg13305 date=1262890884]<br />Мужики - всех с Рождеством!!!! 8)<br />[/quote]<br />Симметрично! :D
#49
17 сентября 2010 в 14:49
Тут еще один вопрос поднакопился - как разобраться с координатами сферического EnvMapp-инга, чтобы эффект хрома/отражения менялся не при поворотах а при передвижении.<br /><br />В Q3 есть аналогичное решение, но что-то я не могу взять в толк, как его адаптировать к движку Hexen2<br /><br />
void RB_CalcEnvironmentTexCoords( float *st ) <br />{<br /> int i;<br /> float *v, *normal;<br /> vec3_t viewer, reflected;<br /> float d;<br /><br /> v = tess.xyz[0];<br /> normal = tess.normal[0];<br /><br /> for (i = 0 ; i < tess.numVertexes ; i++, v += 4, normal += 4, st += 2 ) <br /> {<br /> VectorSubtract (backEnd.or.viewOrigin, v, viewer);<br /> VectorNormalizeFast (viewer);<br /><br /> d = DotProduct (normal, viewer);<br /><br /> reflected[0] = normal[0]*2*d - viewer[0];<br /> reflected[1] = normal[1]*2*d - viewer[1];<br /> reflected[2] = normal[2]*2*d - viewer[2];<br /><br /> st[0] = 0.5 + reflected[1] * 0.5;<br /> st[1] = 0.5 - reflected[2] * 0.5;<br /> }<br />}
<br /><br />Допустим, для v я могу взять s->polys->verts[0], а что выбирать для normal и backEnd.or.viewOrigin?<br />Как понимаю, normal это нормаль поверхности, а backEnd.or.viewOrigin это вектор взгляда камеры?
#50
17 сентября 2010 в 16:44
мировые координаты камеры:<br />в ку2 это r_origin<br />в ку3 это backEnd.or.viewOrigin<br /><br />Хексен2 не знаю, но наверняка он очень похож на Ку2. Посмотри, какая структура активна на момент вызова CalcEnivonmetTexCoords, это может быть и cl.refdef, и просто какой-то локальный refdef, может быть просто r_origin.