3D графика на C#, OpenGL и SFML #1

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

Круто, я как раз думал, что изучать - Opengl или SFML. А здесь всё вместе. Хорошо попал. Подписка.

rusiasha
Автор

чето я не понимаю, зачем нам SFML если мы всеравно юзаем опенгл ?

YamomotoSCTV
Автор

Т.е я даже не могу Nugget менеджер использовать его надо установить в studio. А для этого скорее всего студию обновить, а для этого вероятнее всего надо перейти с windows 7 на windows 10. А я этого не хочу жутко.
Я просто понимаю к чему меня щас visual studio будет вести

kaskadxxx
Автор

Скажи пожалуйста, а можно единожды раздобыть эти Dll'ки (graphics, audio и т.д) и скинуть их в папку с проектом и продолжить работу с другого IDE? Например SharpDevelop. Я просто не хочу в visual studio работать она старая у меня во-первых 2017 версия, и громоздкая.
Могу ли я скопировать откуда нибудь эти SFML и OpenGL dll'ки чтобы весь свой проект в любом ide запускать?

kaskadxxx
Автор

Очень очень круто продолжай не сдавайся!!)))
Я подписался и поставил лайк, с удрвольствием)

TV-tv-grnj
Автор

Не, ну это в натуре чётко, классно вообще!

FasZoneRU
Автор

Почему у меня ругается на var GameWin = new GameWindow();

movietop
Автор

Весь код:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SFML.Graphics;
using SFML.Window;
using OpenTK;
using OpenTK.Graphics.OpenGL;
namespace ConsoleApp2
{
class Program
{
static RenderWindow window;

static void Main(string[] args)
{
GameWindow GameWin = new GameWindow();


window = new RenderWindow(new VideoMode(800, 600), "3D");


window.Closed += (obj, e) => { window.Close(); };
window.Resized += (obj, e) => { window.SetView(new View(new FloatRect(0, 0, e.Width, e.Height))); GL.Viewport(0, 0, (int)e.Width, (int)e.Height); };


window.SetActive(true);


GL.Viewport(0, 0, (int)window.Size.X, (int)window.Size.Y);


float[] virtices =
{
0, 1, 0,
1, 0, 0,
-1, 0, 0
};


int VBO = GL.GenBuffer();

GL.BindBuffer(BufferTarget.ArrayBuffer, VBO);

GL.BufferData(BufferTarget.ArrayBuffer, sizeof(float) * virtices.Length, virtices, BufferUsageHint.StaticDraw);

while(window.IsOpen)
{
window.DispatchEvents();
GL.BindBuffer(BufferTarget.ArrayBuffer, VBO);

GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 0, 0);
GL.DrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType.Triangles, 0, 3);

window.Display();
}
}
}
}

dgb_
Автор

на 4:46 после добавления файлов ошибка никуда не делась, что ещё может быть причиной?

shmidt_rc
Автор

Ты не знаешь как можно преобразовать GL.Vector2, чтоб нулевая координата была в левом нижнем углу экрана. Просто нифига не удобно, когда ноль находится в центре, и мне чтобы сделать перемещение чего-либо нужно указать 16 ИФФОВ (if), 16 штук, понимаешь! Потому что экран разделен не на 1, а на 4 квадранта, которые по формуле перебора дадут 16 условий перемещения, которые нужно отслеживать.
А я хочу чтоб слева внизу был ноль и от него все остальное спокойно отсчитывать, вот как это можно сделать? Или может аналогия точке GL.Vector2 есть?

NickProkhorenko
Автор

Не понимаю, зачем в коде множество пустых строк и шрифт слишком мелкий?

product
Автор

чел, подучи английский хотябы до elementary)

ppc