Компьютерная графика: трассировка лучей и рендеринг программирования 3D

1- Получите имена таблиц:

declare @row_number int = 0;

CREATE TEMPORARY TABLE JibsTables (table_name varchar(50), num int)

INSERT INTO JibsTables (table_name, num)
SELECT table_name, (@row_number:=@row_number + 1) AS num
FROM information_schema.tables 
WHERE table_schema='your_database_name'
  AND table_name like 'jibs%'

2- Создайте динамический запрос в цикле.

declare @counter = 1
declare @sql nvarchar(max);
declare @temptable nvarchar(100);
declare @limit int = (select count(*) from JibsTables)

while @counter <= @limit
begin
   set @temptable = select table_name from JibsTables where num = @counter

   if @counter <> @limit
   begin
      set @sql = @sql + ' select * from ' + @temptable + ' union'
   end
   else
   begin
      set @sql = @sql + ' select * from ' + @temptable + ';'
   end

   set @counter = @counter + 1
end

3- Выполнить динамический запрос

PREPARE stmt1 FROM @sql
EXECUTE stmt1
DEALLOCATE PREPARE stmt1;

Я знаком с синтаксисом MSSQL, старался изо всех сил найти правильный синтаксис для mysql, но логика ясна, я верю. Надеюсь, что все хорошо, пожалуйста, дайте мне знать.

7
задан Community 23 May 2017 в 12:30
поделиться

6 ответов

Книга "Компьютерная графика: Принципы и Практика" (известный в кругах Компьютерной графики как "Фоли-VanDam") являются основным для большинства курсов компьютерной графики, и она затрагивает тему реализации трассировщика лучей в большом количестве деталей. Это вполне датировано, но это является все еще лучшим, afaik, и основные принципы остаются тем же.

Я также второй рекомендация для Математики Eric Lengyel для 3D Игрового Программирования и Компьютерной графики. Это не столь полно, но это - замечательный обзор математических основ, в которых Вы нуждаетесь для 3D программирования, это имеет очень полезные сводки в конце каждой главы, и это записано в доступном, не слишком страшном пути.

Кроме того, Вы, вероятно, захотите некоторый OpenGL или основы DirectX. Легче начать работать с 3D API, затем изучать базовую математику, чем противоположное (по-моему), но оба варианта возможны. Просто ищите OpenGL на ТАК, и необходимо найти несколько хороших ссылок также.

4
ответ дан 6 December 2019 в 14:10
поделиться

Я могу рекомендовать pbrt, это - книга, и физический рендерер раньше учил выпускников информатики. Описание используемой математики является хорошим и четким, и так как это записано в 'грамотном программировании', Вы видите соответствующий код (в C++) также.

8
ответ дан 6 December 2019 в 14:10
поделиться

ICFP 2000 года, Программирующий Конкурс, попросил, чтобы участники создали трассировщик лучей за три дня. У них есть хорошая спецификация для простого трассировщика лучей, и можно получить код для записей победы и некоторых других записей также. Были записи в большом количестве различных языков программирования. Это могло бы быть хорошим способом для Вас начать.

2
ответ дан 6 December 2019 в 14:10
поделиться

Самый краткий полезный ответ, который я могу дать, - то, что большинство важных алгоритмов может быть найдено, в режиме реального времени Представив Tomas Akenine-Möller, Eric Haines и Naty Hoffman, и библиография в конце имеет ссылки на необходимую математику. Их веб-сайт имеет рекомендуемый список чтения также.

Самая полезная математика заказывает, я читал на предмете, Математика Eric Lengyel для 3D Игрового Программирования и Компьютерной графики. Математика, в которой Вы нуждаетесь больше всего, является геометрией (очевидно), и линейной алгеброй (для контакта со всеми матрицами).

1
ответ дан 6 December 2019 в 14:10
поделиться

Я посещал такой урок в прошлом году, и я полагаю, что класс был замечателен для того, чтобы вынуждать студентов изучить математику позади компьютерной графики - не только команды для того, чтобы заставить компьютер сделать то, что Вы хотите.

Моему преподавателю определили местоположение сайта здесь, и он имеет его примечания лекции и проблемные наборы, что можно смотреть через.

Наш заключительный проект был действительно трассировщиком лучей, но после того как Вы знаете, что математика позади него, кодируя (неэффективный) тривиальна.

0
ответ дан 6 December 2019 в 14:10
поделиться

Для математического введения в эти темы посмотрите

http://graphics.idav.ucdavis.edu/education/GraphicsNotes/homepage.html

0
ответ дан 6 December 2019 в 14:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: