GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (18 стр.)

Сообщения на форуме пользователя Andrey (18 стр.)

ATI Fetch4 в OpenGL27 июня 201217:35#45
innuendo
//
#version 410
#define GL_ARB_texture_gather 1
#extension GL_ARB_texture_gather : enable
//
uniform gsampler2D tex;
in vec4 uv;
out vec4 FragColor;

void main()
{   
  ivec2 offsets1[4] = ivec2[4](ivec2(0,0), ivec2(0,1),ivec2(0,2), ivec2(1,0));
  vec4 color = textureGather(tex, uv.xy);
  color += textureGatherOffsets(tex, uv.xy, offsets1);
  FragColor = color;
}
Я не супер спец в современных возможностях GLSL возможно неправильно написал, Cg пишет:
1.glsl(5) : warning C7547: extension GL_ARB_texture_gather not supported in profile glslf
1.glsl(6) : error C0000: syntax error, unexpected identifier, expecting '{' at token "tex"
Так что не завезли это еще в Cg.
>ContactHardeningShadows11 из последнего dxsdk :):):)
о не пробовал, там все надолго :)
ATI Fetch4 в OpenGL27 июня 201216:01#40
innuendo
betauser
The Andreyp
Я тут слышал что GL_ARB_texture_gather не поддерживается Cg. Можно GLSL пример шейдера? или аналог на HLSL ? попробую скомпилить и разобраться
GameDev.ru 11 лет. (комментарии)27 июня 20129:50#31
Sergio
> А кто еще на фотке? Можно слева направо перечислить? :)
Кроме wat Сергей Маковкин(Fly слева первый),и если не ошибаюсь то Денис Овод(korak) 5-й слева, еще мне кажется Семен Козлов третий слева. Больше никого на лицо не знаю или не припомню. Может на фото есть IronPeter.
Поздравляю Всех обитателей!
Передача вектора в uniform переменную HLSL шейдера25 июня 201211:53#19
innuendo
>Встречный вопрос - зачем в DX11 ставить 5 раз cbuffer - 4 лишних вызова !!!
не использовал это ничего не могу сказать.
> Это к чему ?
К тому что GLSL не используется на игровой консоле. Значит кривая/тормозная/неудобная реализация. UBO глючило в RAGE к примеру.
Передача вектора в uniform переменную HLSL шейдера25 июня 201211:34#17
Недостаток GLSL точнее его API это передача параметров. Всякие glUniform* несколько штук. Зачем это все ? Вот в Direct3D просто область памяти просто и удобно, ну и константы между сменой GLSL программы остаются или нет? или вендорозависимо?
Сейчас в PS3 GL_NV_fragment_program2/GL_NV_vertex_program3 через Cg. т.е. это аналог SM3.0. В новой Play Station не будет GLSL, 100% в зависимости от чипа будет либо
GL_NV_fragment_program4/GL_NV_vertex_program4 (SM4) или GL_NV_gpu_program5
все это будет делаться через профили Cg  gp4fp/gp4vp или gp5fp/gp5vp.

Все недостатки GLSL уже поборол благодаря коду выданному Cg.

Сейчас начнется чувствую.

Синий экран вместо кубика22 июня 201214:30#7
Gnomon666
> SetTransform(it->second);
1)
Что тут ? надеюсь не IDirect3DDevice9::SetTransform ???
2)
float4x4 WorldMatrix: register(c0);
float4x4 ViewMatrix: register(c4);
float4x4 ProjMatrix: register(c8);
...
float4x4 wv = mul(WorldMatrix,ViewMatrix);
float4x4 wvp = mul(wv,ProjMatrix);
output.position = mul(input.position,wvp);
зачем 3 матрицы передаешь? перемножь на CPU  передай результат, далее матрицы как хранятся? пробуй транспонировать либо порядок умножения в шейдере или флаг поставь
D3DXSHADER_PACKMATRIX_ROWMAJOR. Возможно дело в порядке хранения в памяти.
3) Пробуй на простом кубике, потом уже свой цикл по TransformNodesMap делай.
4) что пишет DX Debug ?
Система материалов - как бы её сделать? : )20 июня 201221:15#1
L
> renderer->applyPass(material->getTechnique("deferred_render")->getPass("fill_g_buffer"));
а зачем получать пассы эти? можно цикл сделать по ним, Их загружать для каждой технике в порядке выполнения проходов рендеринга, каждый последующий проход будет иметь данные из предыдущего(если нужно)
т.е. синтаксически может красивее и гибче.L
> а. Проверяется, стоят ли уже в видяхе эти щейдеры (по их ID проверка). Если нет - выставляются эти, иначе этап пропускается.
Вот это не понял. Как это так пропускается? есть проход и набор так называемых RenderData(инфа про геометрию растерные операции текстуры и т.д. по сути даные материала) для этого прохода. ВСе что нужно отрисовали, в другом проходе другие шейдеры по идее.
Вообще рендер должен проверят смену шейдера всегда, что-бы лишний раз не ставить дубликат, слать только константы(если конечно поменялись)
для текущего шейдера.
Или я не так что-то понял?
> Например нет материала "древесина", а есть материалы "дерево_дуб",
> "дерево_клён", "дерево_липа", "обожжёное_дерево" и  т.п. , которые по сути
> будут различаться только текстурами, шейдеры же будут идентичны.
Это какой-то хардкод наверное будет. Мне кажется все эти названия исключительно для артистов и тулзов.
MAXSDK не отрабатывает ConvertToType(i->GetTime(), Class_ID(POLYOBJ_CLASS_ID, 0))14 июня 201211:10#3
archelo
> TriObject* tri = new TriObject();
> Может кому понадобится
а зачем так?
// Получить объект из узла
TriObject* ModelSaver::GetTriObjectFromNode(INode *node, int &deleteIt, TimeValue t) const
{
  // Return a pointer to a TriObject given an INode or return NULL
  // if the node cannot be converted to a TriObject
  deleteIt = 0;
  if (!t) {
    t = i->GetTime();
  }
  Object* obj = node->EvalWorldState(t).obj;
  if (obj->CanConvertToType(Class_ID(TRIOBJ_CLASS_ID, 0))) {
    TriObject* tri = static_cast<TriObject *>(obj->ConvertToType(t, Class_ID(TRIOBJ_CLASS_ID, 0)));
    // Note that the TriObject should only be deleted
    // if the pointer to it is not equal to the object
    // pointer that called ConvertToType()
    if (obj != tri) {
      deleteIt = 1;
    }
    return tri;
  }
  return NULL;
}
если GetTriObjectFromNode вернул NULL, продолжаем спуск по дереву.(return TREE_CONTINUE)
Менеджер памяти из doom 3 (комментарии)13 июня 201221:13#4
StiX
>Ну ты понел
да копал я уже это :) просто отдельно выделенные куски кода более подробно можно посмотреть.
Менеджер памяти из doom 3 (комментарии)13 июня 201214:25#1
war_zes
Спасибо, пригодится
Помогите разобраться с OpenGL 3.113 июня 201211:18#11
innuendo
> Это GL4.2 - тесселяция
Ну вот значит наверное угадал я.
Замена Effect фреймворку D3DX.13 июня 201211:16#5
ASD
> а если говорить о замене - то есть nVIDIA CgFx
Ну нафиг его. Cg Run time тормоз, CgFx еще сверху оверхед сделает.
SoulSharer
> По мне как раз таки отказывается - иначе как объяснить причину открытия
> исходников и выкручивания Effect фреймворка из D3DX библиотеки?
> Допустим исходники открыли для того, чтобы была возможность править, но
> всеравно как-то настараживает.
Это где они открыли исходники? можно глянуть? ссылка и т.д.
Помогите разобраться с OpenGL 3.113 июня 201211:03#9
innuendo
> Провокационный вопрос - убрали QUADS, потом добавили PATCHES - теперь можно
> рисовать в том числе и с 4 контрольными точками - в чём фокус ? :)
Я если честно не использовал и не совсем знаю что это(вроде похоже на старую фичу от ATI). Но PATCHES как-то может связана с геометрическими шейдерами и наверное это более расширенный тип отрисовки примитивов.
Помогите разобраться с OpenGL 3.113 июня 201210:26#7
RockFate
> glDrawArrays(GL_QUADS,0,4);  GL_INVALID_ENUM
>А касательно того что квады и точки нельзя выводить это я не понял(
это deprecated функционал, выкинь этот хлам. Почитай что убрали из core context'а.
LOD Generation13 июня 201210:23#15
Che@ter
> Бесплатных не нашел, нашел только триальные.
> А судя по отзывам тот метод работает только на кролике :)
случайно это не смотрел? http://www.melax.com/polychop
Там не только кролик работает :). Вообще впечатляет проделанная работа, на мой взгляд для оффлайн реализации лодов твой алгоритм подойдет.

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр