Разработчик
Скриптер
Проверенный
Участник
Пользователь
- Сообщения
- 273
- Реакции
- 424
- Помог
- 5 раз(а)
SNMetamorph, Или написать с нуля.
Ну, в ТЕОРИИ можно, на практике это займет неадекватное количество времени и не стоит всех трудозатрат.Или написать с нуля.
cv_renderer = gEngfuncs.pfnRegisterVariable( "gl_renderer_new","1", 0 );
cv_bump = gEngfuncs.pfnRegisterVariable( "gl_bump","1", FCVAR_ARCHIVE );
cv_detailtex = gEngfuncs.pfnRegisterVariable( "gl_detailtex","1", FCVAR_ARCHIVE );
cv_bumpvecs = gEngfuncs.pfnRegisterVariable( "bump_vecs","0", 0 );
cv_bumpdebug = gEngfuncs.pfnRegisterVariable( "bump_debug","0", 0 );
cv_specular = gEngfuncs.pfnRegisterVariable( "gl_specular","1", FCVAR_ARCHIVE );
cv_dynamiclight = gEngfuncs.pfnRegisterVariable( "gl_dynlight","1", 0 );
cv_entdynamiclight = gEngfuncs.pfnRegisterVariable( "gl_dynlight_ent","1", 0 );
cv_specular_nocombiners = gEngfuncs.pfnRegisterVariable( "gl_nocombs","0", 0 );
cv_specular_noshaders = gEngfuncs.pfnRegisterVariable( "gl_noshaders","0", 0 );
cv_highspecular = gEngfuncs.pfnRegisterVariable( "gl_highspecular","1", FCVAR_ARCHIVE );
cv_gamma = gEngfuncs.pfnRegisterVariable( "gl_gamma","1", FCVAR_ARCHIVE );
cv_brightness = gEngfuncs.pfnRegisterVariable( "gl_brightness","0", FCVAR_ARCHIVE );
cv_contrast = gEngfuncs.pfnRegisterVariable( "gl_contrast","1.5", FCVAR_ARCHIVE );
cv_speculartwopass = gEngfuncs.pfnRegisterVariable( "gl_twopassspecular","0", 0 );
cv_dyntwopass = gEngfuncs.pfnRegisterVariable( "gl_twopassdyn","0", 0 );
cv_blurtest = gEngfuncs.pfnRegisterVariable( "gl_blurtest","0", 0 );
cv_nsr = gEngfuncs.pfnRegisterVariable( "gl_modelrenderer","0", 0 );
cv_lambert = gEngfuncs.pfnRegisterVariable( "gl_lambert","2", 0 );
cv_drawbrushents = gEngfuncs.pfnRegisterVariable( "gl_brushents","1", 0 );
cv_clipplanes = gEngfuncs.pfnRegisterVariable( "gl_clipplanes","0", 0 );
cv_showplane = gEngfuncs.pfnRegisterVariable( "gl_showplane","0", 0 );
0.119125 seconds (1074.498271 fps) [gl_renderer_new 1]
0.423203 seconds (302.455670 fps) [gl_renderer_new 0]
О, прикольно! А как оно в процесс рендеринга вмешивается? И кстати, не сломались ли бленды? Про че я как раз писал ранее.Частично портировал рендерер paranoia 1.
В целом улучшение фпс незначительное (20-30%) на маленьких картах, на больших же прирост производительности примерно в 7-10 раз.В целом надо настроить только яркость/гамму/контрастность с gl_modelrenderer может быть фпс немного больше.
Код:cv_renderer = gEngfuncs.pfnRegisterVariable( "gl_renderer_new","1", 0 ); cv_bump = gEngfuncs.pfnRegisterVariable( "gl_bump","1", FCVAR_ARCHIVE ); cv_detailtex = gEngfuncs.pfnRegisterVariable( "gl_detailtex","1", FCVAR_ARCHIVE ); cv_bumpvecs = gEngfuncs.pfnRegisterVariable( "bump_vecs","0", 0 ); cv_bumpdebug = gEngfuncs.pfnRegisterVariable( "bump_debug","0", 0 ); cv_specular = gEngfuncs.pfnRegisterVariable( "gl_specular","1", FCVAR_ARCHIVE ); cv_dynamiclight = gEngfuncs.pfnRegisterVariable( "gl_dynlight","1", 0 ); cv_entdynamiclight = gEngfuncs.pfnRegisterVariable( "gl_dynlight_ent","1", 0 ); cv_specular_nocombiners = gEngfuncs.pfnRegisterVariable( "gl_nocombs","0", 0 ); cv_specular_noshaders = gEngfuncs.pfnRegisterVariable( "gl_noshaders","0", 0 ); cv_highspecular = gEngfuncs.pfnRegisterVariable( "gl_highspecular","1", FCVAR_ARCHIVE ); cv_gamma = gEngfuncs.pfnRegisterVariable( "gl_gamma","1", FCVAR_ARCHIVE ); cv_brightness = gEngfuncs.pfnRegisterVariable( "gl_brightness","0", FCVAR_ARCHIVE ); cv_contrast = gEngfuncs.pfnRegisterVariable( "gl_contrast","1.5", FCVAR_ARCHIVE ); cv_speculartwopass = gEngfuncs.pfnRegisterVariable( "gl_twopassspecular","0", 0 ); cv_dyntwopass = gEngfuncs.pfnRegisterVariable( "gl_twopassdyn","0", 0 ); cv_blurtest = gEngfuncs.pfnRegisterVariable( "gl_blurtest","0", 0 ); cv_nsr = gEngfuncs.pfnRegisterVariable( "gl_modelrenderer","0", 0 ); cv_lambert = gEngfuncs.pfnRegisterVariable( "gl_lambert","2", 0 ); cv_drawbrushents = gEngfuncs.pfnRegisterVariable( "gl_brushents","1", 0 ); cv_clipplanes = gEngfuncs.pfnRegisterVariable( "gl_clipplanes","0", 0 ); cv_showplane = gEngfuncs.pfnRegisterVariable( "gl_showplane","0", 0 );
UPD: исправил отрисовку мира в спеках.
Да это вроде в целом разрешимые вещи. Там есть довольно проблемные места, которые пофиксить весьма трудно, типа несостыковок между КСовским и внешним рендером студиомоделей.на первых вариантах, которые @Garey скидывал, пропадал смок, декали и еще были различные мелочи)