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

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

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

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

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

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

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

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

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

Если вы поставите брекпоинт на строке кода [CODE]// включаем режим текстурирования , указывая идентификатор mGlTextureObject
Gl.glBindTexture(Gl.GL_TEXTURE_2D, mGlTextureObject);[/CODE]
то увидите, что mGlTextureObject = 0 даже после того, как в него записалось значение в функции [CODE]mGlTextureObject = MakeGlTexture(Gl.GL_RGB, Il.ilGetData(), width, height);[/CODE]
Это говорит о том, что переменные разные и находятся в разных областях памяти. А значит переменные относятся к разным объектам. Отсюда приходим к коду:

[CODE]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();
}[/CODE]
в функции LoadSubstrateMenu_Click это уже новый child (новый объект), а старый не затерся сборщиком мусора (в пятницу под пиво уже не хочется искать, почему его не прибивает сборщик мусора).

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

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

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

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

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

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

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



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

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

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

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

[CODE]// с помощью прохода двумя циклами, создаем сетку из точек
           for (int ax = -1; ax < 29; ax++)
           {
               for (int bx = -1; bx < 29; bx++)
               {
                   // вывод точки
                   Gl.glVertex2d(ax, bx);
               }
           }
[/CODE]Координатные оси, подписи к ним, элементы стрелок
[CODE]// далее мы рисуем координатные оси и стрелки на их концах
           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");
[/CODE]ну и прочие мелочи:

[CODE]// выводим текст со значением координат возле курсора
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);
[/CODE]в самой функции рисования графика не забудьте поправить координаты. на выходе получаем что-то вроде:
Сплайны - реализация алгоритма на OpenGL.
 
Большое спасибо :good:
Создание растрового редактора, TAO Framework
 
Привет
Большое спасибо за замечания.
Заношу в список, чтобы все проверить и проработать :good:
Обсуждение нового сайта и нововведений
 
На днях сайт переехал на новый сервер, временно не работали почтовые уведомления
Обсуждение нового сайта и нововведений
 
Цитата
Отстой, я надеялся можно сменить
возм пользователя менять свой ник - это не оч. хорошая вещь.
от этого может страдать ЧПУ - если ник использовался в url страницы, то по всем проиндексир. поисковиками страницам будут 404 ошибки. + сложность контроля и другие мелочи соц. общения )
Нужны Уроки по С#
 
Привет.

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

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

[IMG WIDTH=639 HEIGHT=550]http://esate.ru/upload/medialibrary/62f/62faaea59fafd8250acf71cc6d6432da.PNG[/IMG]

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

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

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


Я просто дебагером поймал вылет примерно с glutInit(). убирать из условия glutInitDisplayMode не пробовал, просто сразу накидал кусок, окно не вылетело - дальше экспериментов не ставил [IMG WIDTH=20 HEIGHT=24]http://esate.ru/bitrix/images/forum/smile/ab.gif[/IMG]
Инициализация OpenGL в C#. Библиотека Tao Framework.
 
[QUOTE]И я не понял твой "вызов". Почему у обработчика на вызов 2 окна передается False? Может я логику работы не поня
По идее нужно като отслеживать запущенно хотябы одно окно или нет, либо инициализирован ли OpenGL а так просто не получится[/QUOTE]

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


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

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

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

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


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

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

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


[CODE]public Form2(bool needInit)
       {
           InitializeComponent();
           _needInit = needInit;
...[/CODE]
[CODE]private void Form2_Load(object sender, EventArgs e)
{
           if (_needInit)
           {
               Glut.glutInit();
               Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
           }
...[/CODE]и взов
[CODE]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();
       }
...[/CODE]ну это набросок, можно сделать удобнее для повседневного использования :D

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

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

^
Регистрация
Регистрируясь, вы принимаете правила сайта. Если вы не получили код подтв. регистрации - не забудьте проверить папку спам.
Логин*
Email*
Пароль*
Подтверждение пароля*
 
Логин*
Код*
 
×
Восстановление пароля
Пожалуйста, заполните поля, после чего вы получите код подтверждения на ваш Email. Если код не пришел в течении нескольких минут - проверьте папку спам.
Логин

или Email
Логин*
Код подтверждения*
Новый пароль*
Подтверждение пароля*
×
Авторизация
  • Используйте вашу учетную запись на Facebook.com для входа на сайт.
  • Используйте вашу учетную запись VKontakte для входа на сайт.
  • Используйте вашу учетную запись Google для входа на сайт.
Авторизуйтесь с помощью соц. сети или с помощью аккаунта на сайте:
×