Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.

Обсуждение нового сайта и нововведений
 
Цитата
Aleh Lipka написал:
Единственное чего еще не хватает - браузеры не понимают, что форма авторизации это форма авторизации и не предлагают запомнить пароль
А у меня запоминает, странно.
Надо будет перепроверить
Визуализация графика функции в С# и OpenGL.
 
Цитата
bStop это какого Объекта
это просто собственная переменная, нужно ее объявить.
по умолчанию она true и сцена отрисовывается. Если стала false - новое рисование сцены останавливается и визуализирован только последний кадр

p.s. это просто пример того, что визуализацию сцены нужно вызывать по условию, которое отрабатывает по вашим правилам. вместо bStop может быть результат работы функции, которая проверяет все условия - рисуем сцену сейчас или нет.
Визуализация графика функции в С# и OpenGL.
 
Цитата
releyshic написал:
А где посмотреть Список всех Свойств и Методов AnT-а
C:\Program Files (x86)\TaoFramework\doc\Tao.Platform.Windows.chm -> описание класса SimpleOpenGlControl

Цитата
releyshic написал:
Как остановить Отрисовку AnT-а ? то есть чтобы в неактивном окне ничего не рисовалось, а замирало как есть?
Код
if(!bStop)
Draw(); // функция, отвечающая за отрисовку сцены 

ну и bStop меняется, к примеру, по событию нажатия на кнопку
Создание второго оконного приложения в C# .NET
 
Цитата
releyshic пишет:
Есть у меня один глобально важный вопрос - вот для данного примера как зовут Объект типа Preview ? те экземпляр класса/формы который мы видим при запуске проги. Он явно в коде не написан конструктором
?
Визуализация графика функции в С# и OpenGL.
 
Цитата
releyshic написал:
ниужели надо всегда всё перерисовывать полностью? и что никак нельзя например сделать постоянный фон (кроме картинки конечно)? или есть слои какието? можно ли как то сохранить текущий вид во чтото (для быстрого использования конечно)?
я уже написал выше: мне кажется, что дело в особенностях наложений окон и их перерисовки. Судя по скриншотам на не активном окне артефакты.
Значит как минимум нужно проверить, будет ли повторяться проблема на компьютерах с другими видеокартами (точно помню, что как-то мне попадались скриншоты с сильными артефактами на окне с визуализацией, и проблема была в видеокарте и драйверах ноутбука).

Ну а дальше да, сначала проверить - поможет ли вообще перерисовка неактивного окна от этих артефактов.

А потом уже думать над тем, как выходить из ситуации - либо перерисовка от доп. события, либо еще какие-нибудь варианты.

Обратите внимание на glReadPixels / glDrawPixels, но это не самый быстрый способ.
Введение в C# | Описание синтаксиса C#
 
Ну это все мелочи.
Первые несколько уроков - это быстрое ознакомительное знакомство с синтаксисом языка, чтобы максимально быстро помочь влиться новичкам в уроки.
На руководство по C# это не претендует - хорошую книжку по С# нужно иметь в запасе и почитывать параллельно =).
А быстрое начальное продвижение по урокам OpenGL - это только стимул добирать знания языка.
Не работает наложение текстуры: попробовал вставить по аналогии в свой проект - получил зеленый квадрат
 
Цитата
constX7 написал:
С меня ящик пива, то, которое любите. Сообщите адрес и марку пива, куда выслать.)
Был рад помочь!

alita, на чужое пиво не засматрииваемся  :D
Уроки 3D Max. Освоение интерфейса 3D Max.
 
alita, с аккаунтами по внимательнее
Не работает наложение текстуры: попробовал вставить по аналогии в свой проект - получил зеленый квадрат
 
Цитата
constX7 написал:
Что-то я в прострации - ничего не могу сделать с текстурой. Вот весь проект, может посмотрите?
https://drive.google.com/file/d/0BxSuWjzbtFnxVUZwUnotdmJMem8/view?usp=sharing
вы просто были не внимательны:

Если вы поставите брекпоинт на строке кода
Код
// включаем режим текстурирования , указывая идентификатор mGlTextureObject
Gl.glBindTexture(Gl.GL_TEXTURE_2D, mGlTextureObject);

то увидите, что mGlTextureObject = 0 даже после того, как в него записалось значение в функции
Код
mGlTextureObject = MakeGlTexture(Gl.GL_RGB, Il.ilGetData(), width, height);

Это говорит о том, что переменные разные и находятся в разных областях памяти. А значит переменные относятся к разным объектам. Отсюда приходим к коду:

Код
public frmGlobal()
{
    InitializeComponent();
    frmFlat2D child = new frmFlat2D(this);
    child.Show();
}

private void LoadSubstrateMenu_Click(object sender, EventArgs e) //Загрузка подложки
{
    frmFlat2D child = new frmFlat2D(this);
    child.OpenPictureSubstrate();
}

в функции LoadSubstrateMenu_Click это уже новый child (новый объект), а старый не затерся сборщиком мусора (в пятницу под пиво уже не хочется искать, почему его не прибивает сборщик мусора).

Вам нужно, чтобы child выходил за область видимости конструктора (а он у вас локальный). И с этим же child работать из LoadSubstrateMenu_Click
Визуализация графика функции в С# и OpenGL.
 
Нужно смотреть весь проект и экспериментировать.

Мне кажется что артефакты можно убрать только перерисовкой окна, на котором они появились, и что они не связаны с тем, как реализован рендер в приложении.
Но это все надо опытным путем делать.
Визуализация графика функции в С# и OpenGL.
 
Цитата
У меня при помещении в дочернее окно MDI какая то непонятная вещь - когда запускаешь вторую вкладку, берешь её за рамку для перетаскивания на 1 окошке рисуются каляки от окошка при перемещении
не пойму как с этим бороться?
Да, с ходу не знаю что предположить.

Артефакты на неактивном окне, видимо от края активного угла. Мне кажется это особенности визуализации окон наложившиеся на компонент визуализации TAO.

А если перерисовывать 1 раз (даже без вычислений) неактивное окно по окончанию перемещения активного? Возможно это единственный вариант.
Загрузка, текстурирование и визуализация 3D моделей в OpenGL. Формат ASE. Часть 2.
 
Цитата
Viking8008 написал:
Подождите, модель то прога загружает, а как шкурку-то надеть? Помогите, пожалуйста! Если можете скиньте архив готовый.
Или, если я в 3д макс разрисую объект, то и в прогу он разрисованный засунеться?
Чтобы текстура корректно наложилась, нужно чтобы на 3D модели присутствовали текстурные координаты + была создана текстурная карта.

Пример создания текстурной карты в 3D max:
http://esate.ru/uroki/3d-max/materialy_i_osveshchenie/3D_max_urok_14_1/

Пример модели + текстуры приложен в сообщениях форума выше.
Загрузка, текстурирование и визуализация 3D моделей в OpenGL. Формат ASE. Часть 2.
 
ase модель:
http://esate.ru/upload/files/drum.zip
Загрузка, текстурирование и визуализация 3D моделей в OpenGL. Формат ASE. Часть 2.
 
Mixail12345, приложите, пожалуйста, к сообщению файл с проблемной моделью и текустурой.

Нашел в старых бекапах пару моделек ASE. Загрузил в программу (исходник, приложенный к последней части урока). Модель из 3х подобъектов. С тремя текстурами, все наложилось корректно:



Архив с моделью и текстурой приложил.
Исходники пока не проверял.
3D Studio Max. Уроки 3D Max. Создание первого пробного материала на основе его особенностей.
 
Дада. В уроках утого раздела используются обычные материалы :)
Текстурирование в openGl - библиотека DevIL (OpenIL).
 
Проверял на 2448х3264 (JPG), текстура загрузилась и отобразилась.

Остальные ошибки исправлены, спасибо.
Визуализация графика функции в С# и OpenGL.
 
Прикрепил оригинальный код урока к статье  8)
Визуализация графика функции в С# и OpenGL.
 
Цитата
afonya пишет:
Уважаемый автор! На данном примере как сместить центр координат в (-14:-14)? Никак не могу разобраться!
Привет.

Весь проект сделан так, что центр смещен в середину экрана. Вам нужно скорректировать все координаты: начального сдвига отрисовки сцены, координатных осей, стрелок к ним и прочему.
Т.е. начиная с:

Код
// выполняем перемещение в пространстве по осям X и Y 
Gl.glTranslated(1, 1, 0);
 
вместо glTranslated(15,15,0), как было изначально.
затем стеку точек отрисовать надо с учетом того, что сместились всего на 1 по каждой оси:

Код
// с помощью прохода двумя циклами, создаем сетку из точек 
            for (int ax = -1; ax < 29; ax++)
            {
                for (int bx = -1; bx < 29; bx++)
                {
                    // вывод точки 
                    Gl.glVertex2d(ax, bx);
                }
            }
 
Координатные оси, подписи к ним, элементы стрелок
Код
// далее мы рисуем координатные оси и стрелки на их концах 
            Gl.glVertex2d(0, -11);
            Gl.glVertex2d(0, 29);

            Gl.glVertex2d(-1, 0);
            Gl.glVertex2d(29, 0);

            // вертикальная стрелка 
            Gl.glVertex2d(0, 29);
            Gl.glVertex2d(0.1, 28.5);
            Gl.glVertex2d(0, 29);
            Gl.glVertex2d(-0.1, 28.5);

            // горизонтальная трелка 
            Gl.glVertex2d(29, 0);
            Gl.glVertex2d(28.5, 0.1);
            Gl.glVertex2d(29, 0);
            Gl.glVertex2d(28.5, -0.1);

            // завершаем режим рисования 
            Gl.glEnd();

            // выводим подписи осей "x" и "y" 
            PrintText2D(29.5f, 0, "x");
            PrintText2D(0.5f, 28.5f, "y");
 
ну и прочие мелочи:

Код
// выводим текст со значением координат возле курсора 
PrintText2D(devX * Mcoord_X + 0.2f, (float)ScreenH - devY * Mcoord_Y + 0.4f, "[ x: " + (devX * Mcoord_X - 1).ToString() + " ; y: " + ((float)ScreenH - devY * Mcoord_Y - 1).ToString() + "]");
 
Gl.glVertex2d(lineX, 1);
Gl.glVertex2d(lineX, lineY);
Gl.glVertex2d(1, lineY);
Gl.glVertex2d(lineX, lineY);
в самой функции рисования графика не забудьте поправить координаты. на выходе получаем что-то вроде:
Сплайны - реализация алгоритма на OpenGL.
 
Большое спасибо :good:
Создание растрового редактора, TAO Framework
 
Привет
Большое спасибо за замечания.
Заношу в список, чтобы все проверить и проработать :good:
Обсуждение нового сайта и нововведений
 
На днях сайт переехал на новый сервер, временно не работали почтовые уведомления
Обсуждение нового сайта и нововведений
 
Цитата
Отстой, я надеялся можно сменить
возм пользователя менять свой ник - это не оч. хорошая вещь.
от этого может страдать ЧПУ - если ник использовался в url страницы, то по всем проиндексир. поисковиками страницам будут 404 ошибки. + сложность контроля и другие мелочи соц. общения )
Нужны Уроки по С#
 
Привет.

Согласен, не много имеется в разделе OpenGL+C#, самой базовой информации.
Уроков всех хочется больше, сейчас идут работы некоторые в этом направлении. C# есть в списке, но с минимальным приоритетом, т.к. оч. много надо сил на создание новых уроков :(
Инициализация OpenGL в C#. Библиотека Tao Framework.
 
Цитата
не могу понять как именно ты использовал дебаггер, я запукаю режим отладки потом в проге жму на копку

Надо отметить метками (красны точки слева) все строки кода, на которых будет остановка выполнения программы (на скрине отметка на входе в функцию). Когда исполнение дойдет до нужной строки кода. Дальше жмем F5 для продолжения выполнения программы и остановки на нужной строке кода.



ну и при очередном нажатии F5 программа вылетит, таким образом определяем проблемное место
Инициализация OpenGL в C#. Библиотека Tao Framework.
 
Цитата
Касяк происходит на функции Glut.glutWireSphere(2, 32, 32); . Выявил комментируя строки кода построчно
Нажимаешь кнопку и окно просто закрывается, даже если только 1 окно запущено

Там случайно не "«System.DllNotFoundException: Не удается загрузить DLL „freeglut.dll“: Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E) — Решаеться методом копирования из папки C:\Programm Files\TaoFramework\lib в папку C:\Windows\System32»"?

В конце публикации есть советы по этому поводу. Если не помогут можно еще попробовать C:\Program Files (x86)\TaoFramework\lib закинуть в переменные окружения или freeglut.dll в папку с исполняемым файлом проекта
Инициализация OpenGL в C#. Библиотека Tao Framework.
 
Цитата
Я правильно понял? Единственное и достаточное условие работы - это чтобы
Glut.glutInit();
Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);


Я просто дебагером поймал вылет примерно с glutInit(). убирать из условия glutInitDisplayMode не пробовал, просто сразу накидал кусок, окно не вылетело - дальше экспериментов не ставил
Инициализация OpenGL в C#. Библиотека Tao Framework.
 
Цитата
И я не понял твой "вызов".  Почему у обработчика на вызов 2 окна передается False? Может я логику работы не поня
По идее нужно като отслеживать запущенно хотябы одно окно или нет, либо инициализирован ли OpenGL а так просто не получится

Просто это был быстрый набросок реализации:
Сделал 2 пункта меню, чтобы потестировать, будет ли вылетать:
1 пункт меню вызывал дочернюю форму передавая true, второй пункт меню - передавая false.


Цитата
По идее нужно като отслеживать запущенно хотябы одно окно или нет, либо инициализирован ли OpenGL а так просто не получится

Да, в вашей реализации надо сделать контроль над инициализацией в модальных окнах - надо следить за тем, инициализирован ли или нет, т.е. контролить открытие/закрытие окон и использование визуализации в них.

Идею я подал, дальше все в ваших руках:good:. Если где-то еще вылетает надо ловить дебагером, на каком именно моменте.
Обсуждение нового сайта и нововведений
 
Цитата
1 А то, что авторизация через ВК слетает постоянно так и должно быть? Зачем так?

А что конкретно слетает, можно по подробнее?


Цитата
2 Можно ли привязать регистрацию с ВК к регистрации на форуме, чтобы сайт понимал что это я оди и тот же челове, а то меня 2 онлайн ))) Да и к тому же чтоб на форуме личная активность мне одному записывалась а не мне двум )))

Сейчас такого функционала нет :(
Инициализация OpenGL в C#. Библиотека Tao Framework.
 
Привет

выполняйте инициализацию только 1 раз. что-то наподобие


Код
public Form2(bool needInit)
        {
            InitializeComponent();
            _needInit = needInit;
...

Код
private void Form2_Load(object sender, EventArgs e)
{
            if (_needInit)
            {
                Glut.glutInit();
                Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
            }
 ...
и взов
Код
private void newToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 newMDIChild = new Form2(true); // первый вызов дочерней формы
            newMDIChild.MdiParent = this;
            newMDIChild.Show();
        }

        private void new2ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 newMDIChild = new Form2(false); // последующие
            newMDIChild.MdiParent = this;
            newMDIChild.Show();
        }
 ...
ну это набросок, можно сделать удобнее для повседневного использования   :D  

при создании второй формы рендер может сработать не с первого вызова (глядел наскоро, не уверен почему так происходит. например, если поставить кнопку , реализующую визуализацию, то на второй форме визуализация отрисуется после второго нажатия)
Визуализация 2D примитивов в OpenGL. Основы.
 
Привет, спасибо за отзыв :).

Да, грамотность страдает.
OpenGL + C# - это последний раздел, который еще не закончен только начат редактором, но проверка идет и весь этот ужас вычистим :D
Изменено: Anvi - 28 Января 2015 12:26:40
Страницы: 1 2 След.

^