• Как переиспользовать opengl-объекты в разных окнах?

    @PrizmMARgh Автор вопроса
    Я убрал удаление, но это всё равно не работает:
    код

    int main() {
    	GLFW glfw;
    
    	Point_UV quad_points[] = {
    		{{-1, -1,	0},	{0, 0}},
    		{{ 1, -1,	0},	{1, 0}},
    		{{ 1,	1,	0},	{1, 1}},
    		{{-1,	1,	0},	{0, 1}},
    	};
    	u32 quad_ids[] = {0, 1, 2, 0, 2, 3};
    
    	glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);
    	GLFWwindow* global_window = glfwCreateWindow(1200, 800, "rfoegl", nullptr, nullptr);
    	glfwWindowHint(GLFW_VISIBLE, GLFW_TRUE);
    
    	// glfwMakeContextCurrent(global_window);
    
    	Mesh quad_mesh;
    	u32 quad_shader;
    
    
    	{
    		Window win_0(1200, 800, global_window);
    
    		quad_mesh = make_mesh_uv((float*)quad_points, quad_ids, 4, 6);
    		quad_shader = get_shader_program_VF("./default.vert", "./uvmap.frag");
    
    		set_default_key_callback(&win_0);
    
    		while(!glfwWindowShouldClose(win_0.id)) {
    			glfwPollEvents();
    			draw_iteration(quad_shader, quad_mesh);
    			glfwSwapBuffers(win_0.id);
    		}
    	}
    
    	{
    		Window win_1(1200, 800, global_window);
    
    		set_default_key_callback(&win_1);
    
    		while(!glfwWindowShouldClose(win_1.id)) {
    			glfwPollEvents();
    			draw_iteration(quad_shader, quad_mesh);
    			glfwSwapBuffers(win_1.id);
    		}
    	}
    
    	glDeleteProgram(quad_shader);
    	clear(quad_mesh);
    
    	return 0;
    }

  • Как переиспользовать opengl-объекты в разных окнах?

    @PrizmMARgh Автор вопроса
    Я знал про это, до того, как задать вопрос я прочитал страницы [3] и [?] и пытался сделать именно то, что вы описали, но, очевидно, как-то не так:
    код

    int main() {
    	GLFW glfw;
    
    	Point_UV quad_points[] = {
    		{{-1, -1,	0},	{0, 0}},
    		{{ 1, -1,	0},	{1, 0}},
    		{{ 1,	1,	0},	{1, 1}},
    		{{-1,	1,	0},	{0, 1}},
    	};
    	u32 quad_ids[] = {0, 1, 2, 0, 2, 3};
    
    	glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);
    	GLFWwindow* global_window = glfwCreateWindow(1200, 800, "rfoegl", nullptr, nullptr);
    	glfwWindowHint(GLFW_VISIBLE, GLFW_TRUE);
    
    	Mesh quad_mesh;
    	u32 quad_shader;
    
    	{
    		Window win_0(1200, 800, global_window);
    
    		quad_mesh = make_mesh_uv((float*)quad_points, quad_ids, 4, 6);
    		quad_shader = get_shader_program_VF("./default.vert", "./uvmap.frag");
    
    		set_default_key_callback(&win_0);
    
    		while(!glfwWindowShouldClose(win_0.id)) {
    			glfwPollEvents();
    			draw_iteration(quad_shader, quad_mesh);
    			glfwSwapBuffers(win_0.id);
    		}
    
    		glDeleteProgram(quad_shader);
    		clear(quad_mesh);
    	}
    
    	{
    		Window win_1(1200, 800, global_window);
    
    		set_default_key_callback(&win_1);
    
    		while(!glfwWindowShouldClose(win_1.id)) {
    			glfwPollEvents();
    			draw_iteration(quad_shader, quad_mesh);
    			glfwSwapBuffers(win_1.id);
    		}
    
    	}
    
    	glDeleteProgram(quad_shader);
    	clear(quad_mesh);
    
    	return 0;
    }


    но это не помогло (первое окно рисуется, как надо, второе - чёрное). А если создать объекты в контексте глобального окна:
    код

    glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);
    	GLFWwindow* global_window = glfwCreateWindow(1200, 800, "rfoegl", nullptr, nullptr);
    	glfwWindowHint(GLFW_VISIBLE, GLFW_TRUE);
    
    	glfwMakeContextCurrent(global_window);
    
    	Mesh quad_mesh;
    	u32 quad_shader;
    
    	quad_mesh = make_mesh_uv((float*)quad_points, quad_ids, 4, 6);
    	quad_shader = get_shader_program_VF("./default.vert", "./uvmap.frag");


    , то программа вовсе падает на предпоследней строчке (от вызова glGenVertexArrays).
  • Как переиспользовать opengl-объекты в разных окнах?

    @PrizmMARgh Автор вопроса
    Евгений Петряев, если ты про clear для экрана - как он вообще на что-то может повлиять? Если про clear для меша и шейдера - я его вызываю в самом конце программы.
  • Греется ноутбук dell с ubuntu.?

    @PrizmMARgh Автор вопроса
    WapSter, у меня до этого была установлена винда + линукс, но как показала практика всё, все мои игры запускались на линуксе без проблем (да и я не играю в требовательные игры). А т.к. на линуксе все остальное работает быстрее и удобнее, то решил снести винду и заодно обновить убунту. Так что, всё тут нормально. Хотя и думал, что можно было бы поставить виртуалку чисто для игр, но, как мне кажется, проблема та же была бы.
  • Греется ноутбук dell с ubuntu.?

    @PrizmMARgh Автор вопроса
    Насколько я понимаю, это опции разгона, но мне же не нужно её разгонять. Или вы предлагаете выключить его, если он стоит по умолчанию? Как тогда узнать, какие у меня сейчас стоят настройки?
  • Вкладки в chromium вместо перемещения отделяются, что делать?

    @PrizmMARgh Автор вопроса
    WbICHA, а, по ссылке. действительно, открывает (я просто пытался нажимать на сами вкладки). Но что, если мне нужно открыть вкладку не справа от начальной, а, например, переместить в другую группу вкладок? В этом основная проблема.
  • Вкладки в chromium вместо перемещения отделяются, что делать?

    @PrizmMARgh Автор вопроса
    WbICHA, что средняя кнопка мыши? она просто закрывает вкладку.
  • Вкладки в chromium вместо перемещения отделяются, что делать?

    @PrizmMARgh Автор вопроса
    Дмитрий, это всё в полном экране и делалось. если речь об f11, то тогда панель вкладок не отображается.
  • Вкладки в chromium вместо перемещения отделяются, что делать?

    @PrizmMARgh Автор вопроса
    заметил, что когда пытаюсь переместить вкладку, курсор "цепляется" не за вкладку, а за полоску окна.
  • Статические массивы и шаблоны по числу в C#?

    @PrizmMARgh Автор вопроса
    Василий Банников, похоже это действительно то, что нужно. Спасибо. (Правда ещё нужно разобраться, как это подключить к юнити, да и неудобно каждый раз нужно писать .Span)
  • Статические массивы и шаблоны по числу в C#?

    @PrizmMARgh Автор вопроса
    Василий Банников, Я сейчас проверил и почитал - в документации от майкрософта сказано, что Span не может быть элементом класса (если я правильно понял). Однако, указатель может - тогда нужно в моём случае просто использовать указатели и stackalloc?
  • Статические массивы и шаблоны по числу в C#?

    @PrizmMARgh Автор вопроса
    А не будет ли Span только замедлять работу? К тому же, как я вижу, у меня Span вообще нет (может, не та версия шарпа или что-то не указано в конфигурационных файлах). Ну ок, когда с этим разберусь - тогда в качестве возвращаемого значения возвращать Span и хранить (в примере) Span / Span ? Надо ли будет каким-то образом очищать память, как в плюсах?
  • Как хранить карты величин в unity/c#?

    @PrizmMARgh Автор вопроса
    bitmap явно мимо, вряд ли он имеет встроенную интерполяцию. А вот у юнити и правда есть Texture2D.GetPixelBilinear, но он имеет тип Color. благо, Color содержит все каналы, как float. Однако в документации "Each color component is a floating point value with a range from 0 to 1.". Надеюсь, туда реально записывать значения вне диапазона, но это уже экспериментально проверять надо. Так или иначе, спасибо.
  • Как сделать + x + 5 в юнити?

    @PrizmMARgh
    вместо этого:
    transform.position = pos.transform.position, x + 5;

    напиши это:
    Vector3 p = pos.transform.position;
    p.x += 5;
    transform.position = p;

    если правильно понял
  • Возможно ли обучить GAN без batchnorm?

    @PrizmMARgh Автор вопроса
    imageman, из всего этого только значения градиентов не отслеживала. Оптимизатор использовала adam и его варианты, gan всё равно обучался очень плохо - у него выходные значения имели сильную дисперсию. Думаю, не стоит подобным заниматься без батчей, к тому же без них и скорость сильно падает. В любом случае, в ваших ответах много полезного, обозначу их как правильные.
  • Возможно ли обучить GAN без batchnorm?

    @PrizmMARgh Автор вопроса
    imageman, Да, я знаю, что такое свёрточные слои и свёрточная нейросеть. Она в GAN и была использована. А насчёт бесплатных альтернатив - это всё равно не так интересно (ведь всё это делалось, как досуг, а не как что-то коммерческое), но если есть какая-то библиотека на c++, которая позволяет использовать свёртку/развёртку (желательно вместе с другими операциями типа pool) и, соответственно, применять к ней шаг backpropagation, то хотелось бы узнать - какая? (если не считать opencv, т.к. там уже реализовано и всё остальное для нейросетей)
  • Как правильно учить с подкреплением?

    @PrizmMARgh Автор вопроса
    1. Само собой, пробовала leak relu двух видов: с одним углом и двумя (на 0 и 1)
    2. Тоже пробовала
    3. И это тоже, вроде, но с увеличением числа скрытых слоёв ситуация лучше не становилась, вроде
    4. Тоже пробовала, в основном как раз и брала 0.001
    5. Возможно и так, но на более серьёзных задачах боюсь представить, сколько лет тогда надо будет обучать

    Писала на c++, т.к. питон не знала. Не знаю и до сих пор, по крайней мере, не знаю, как на нём собирать проекты для запуска на других устройствах при условии, чтобы итоговый проект файл не весил >100мб. А с плюсами ситуация попроще, хоть и не знаю их полностью до сих пор, программы на них хоть научилась собирать нормально + уже освоила графические библиотеки под них.

    Экспорт моделей может и помог бы, но он не подходит в случаях, когда модель надо будет доучивать уже при работе программы. Да и вызывать питоновский скрипт тоже смысла немного - тогда уже вообще весь проект проще будет на нём написать.
  • Возможно ли обучить GAN без batchnorm?

    @PrizmMARgh Автор вопроса
    А разве FeedForward - обязательно полносвязная? Я подразумевала, что у меня нейросети имеют простую архитектуру и все слои (слои сложения, умножения на матрицу, свёртки, применения функций) вычисляются строго поочерёдно и ровно единожды. В любом случае, спасибо за ответ, хотя уже и поздно. Я поняла, что для нейросетей была слишком неопытна и мне не стоило писать подобие библиотеки для них на плюсах без должного знания языка и библиотек для математики (от которых по глупости решила отказаться).
  • Как правильно делать релиз sfml-проектов?

    @PrizmMARgh Автор вопроса
    LoliDeveloper, В любом случае, препод помог решить это. Если кто-то столкнётся с такой проблемой, напишу решение в ответе.
  • Как правильно делать релиз sfml-проектов?

    @PrizmMARgh Автор вопроса
    LoliDeveloper, хорошо, если использовать такой архив, то что тогда нужно писать в cmakelist?