Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Скажите, какая из этих текстур дана в глобальных координатах, а какая в касательных к объекту?Первая в глобальных. В ней цвет (значения векторов) очень сильно изменяется от положения в пространстве.
Какой формат текстуры предпочтительнее — касательный или глобальный? Почему?Касательный. Больше диапазон значений, хотя вроде бы для применения нужно на одно умножение векторов больше.
virtual Vec4f vertex(int iface, int nthvert) {
Vec4f gl_Vertex = embed<4>(model->vert(iface, nthvert)); // read the vertex from .obj file
gl_Vertex = Viewport*Projection*ModelView*gl_Vertex; // transform it to screen coordinates
varying_intensity[nthvert] = std::max(0.f, model->normal(iface, nthvert)*light_dir); // get diffuse lighting intensity
return gl_Vertex; // project homogenious coordinates to 3d
}
Vec3f c = barycentric(pts[0], pts[1], pts[2], P);
float z = pts[0].z*c.x + pts[1].z*c.y + pts[2].z*c.z;
float w = pts[0].w*c.x + pts[1].w*c.y + pts[2].w*c.z;
P.z = std::max(0, std::min(255, z/w+.5));
К тому же треугольник я отрисовываю не горизонтальными полосками, а вертикальными.Но зачем? Это может сильно ухудшить производительность.
т.к. раст не позволяет автоматически конвертироватьчисловыетипы
В скрытых текстах изображения не прогружаются. Зачем тогда они нужны?
То есть, вы взяли текст семилетней давности и удивляетесь, что ссылки битые? :)
Вот актуальная версия текста: https://github.com/ssloy/tinyrenderer/wiki/Lesson-6:-Shaders-for-the-software-renderer
Вот что мне "нравится" в статьях с картинками - это то что внешние ссылки со временем становятся недоступными. Со временем так здрово повышается "информативность" статьи... (((
Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 5 из 6