|
|
|
|
75057 273 0 0 |
|
Опции темы | Поиск в этой теме |
24.06.2012, 20:41 | 101 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
James Lehman, спасибо за совет по поводу форматов! Я сделал, чтобы программа читала все форматы ILDA. Но сохраняет она только в форматах 0, 1, 4 и 5.
По поводу нестандартного заголовка формата 3 - не вижу смысла обсуждать его историю, т.к. мы имеем уже принятый стандарт и нам остаётся только ему следовать |
24.06.2012, 21:00 | 102 |
Увлеченный
Регистрация: 22.05.2012 Последняя активность: 02.12.2015 21:10
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
You should probably try to implement format 2 palette sections as well, just for the sake of completeness. You probably will never find an ILDA file with a format 2 palette in it, but it might help to make your code more robust.
As for your quote "We have already adopted the standard and we only need to follow". I am not a sheep! I have invented quite a few new original ideas and created many new standards for laser art and display. All if it has to come from somewhere. I know better than to believe that the ILDA technical standards committee are gods that must never be questioned. You are correct. Format 3 is all history and it is over and done. But it might give you some insight as to why the technical document makes no sense at all. It has contradictions that make it impossible to implement with any certainty. The current specification is not open to the public. The last working version I saw, that was written a couple of years ago was ridiculous. It went on for page after page about what the standard was not to be. It had very little about what it actually is. It is specifically designed to be something that will never be objective or definitive. It will always be speculative. Any efforts to comply with it may be easily denounced. The people who are responsible for creating and maintaining that document are not motivated by mathematical correctness or utility. That much should be obvious.
__________________
Creator of LaserBoy! |
24.06.2012, 21:25 | 103 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
James Lehman, ты имеешь ввиду сделать возможность сохранения в формате 2? Зачем, если есть форматы 4 и 5? А читать формат 2 программа и так умеет
|
24.06.2012, 21:34 | 104 |
Увлеченный
Регистрация: 22.05.2012 Последняя активность: 02.12.2015 21:10
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
I guess it is a matter of what you want your program to do. If all you need to do is read ILDA then that's fine.
There are a lot of things you can do with a palette. One of the most important things is that you can control all of the colors in an entire frame set from one list of RGB values. This makes it possible to tune the colors for different projectors in one place. If you use formats 4 or 5, you must identify every RGB combination in every vector in every frame and replace them one at a time. LaserBoy gives you amazing control over both 24-bit RGB color tables and palettes and the ability to convert between them. It makes a lot of sense and gives you a lot of utility. James. |
24.06.2012, 21:53 | 105 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
James Lehman, Я планирую сделать очень простую программу, поэтому не буду заострять внимание на таких вещах, как работа с палитрами. Пока ограничусь только чтением формата 2, без записи
|
25.06.2012, 08:39 | 106 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Оказывается, формат DXF (для импорта из 3dmax) открытый, но спецификация на него занимает 270(!) страниц
http://usa.autodesk.com/ads... Как бы выяснить, что именно, надо уметь из него читать, чтобы импортировать картинки, нарисованные для создания лазерного шоу... |
25.06.2012, 09:20 | 107 |
Увлеченный
Регистрация: 22.05.2012 Последняя активность: 02.12.2015 21:10
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Most of a DXF file is useless. The only part that is important is the section called ENTITIES. That is where the drawing exists. Add to that the fact that there is only a small set of entities that are relevant to laser art. It's not that hard to read and translate DXF. You do have to read the whole thing as real number coordinates and scale that to fit inside of signed short integer space. Real numbers can be any size and you don't know until you look at the whole thing. That can become more challenging when you need to read an entire set of DXF files to make a frame set. They must all be scaled together and the center of that space needs to be maintained for every frame.
LaserBoy does this. James. |
25.06.2012, 12:46 | 108 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
James Lehman, спасибо за подсказки!
|
25.06.2012, 22:26 | 109 |
Увлеченный
Регистрация: 22.05.2012 Последняя активность: 02.12.2015 21:10
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
If you can figure out how to render a 3D SPLINE entity, please let me know!
LaserBoy knows how to render POINT LINE CIRCLE ARC ELLIPSE POLYLINE LWPOLYLINE TEXT LaserBoy can render all of these in colors from either the pre-defined DXF palette (value code 62) or from 24 bit colors (value code 420). The TEXT entity was the most difficult one. It requires at least one special ILDA file that is a frame set of all of the visible glyphs in order of the ASCII character set. Both lucida.ild and courier_new.ild come with LaserBoy. |
26.06.2012, 00:14 | 110 |
Увлеченный
Регистрация: 22.05.2012 Последняя активность: 02.12.2015 21:10
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
I'm not sure what language or development environment you are using, but LaserBoy is written in Generic C++ with good use of The Standard Template Library (STL). I really like to use the template class vector <type>. It's very easy to manage arrays of data elements. Every frame is made of a vector of vertices. A frame set is a vector of frames. A palette or color table is a vector of colors. I have two kinds of data elements for vertices. One is for the short integer space that makes an ILDA file and another is for real numbers, for reading DXF and other real number coordinate systems and scaling them to fit inside of the short integer space.
James. |
26.06.2012, 10:45 | 111 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
James Lehman, я использую c++, и данные, которыми я оперирую, похожи на те, которые ты описал
|
26.06.2012, 21:41 | 112 |
Увлеченный
Регистрация: 22.05.2012 Последняя активность: 02.12.2015 21:10
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Are you looking at the source code for LaserBoy as an example?
The real number 3D coordinate class can also be used to store a 3D angle of rotation for motion calculations. One of the most powerful design features of my code is the overloaded operators. In several different places, I have defined operators to work between the classes. It is possible to move and scale 3D coordinates with addition and multiplication. It is possible to add the contents of two frames together as easily as C = a + b; It can add frames to frame sets like set += frame; and calculate the distance between points and the angle between three consecutive points just as easily. Plus there is a system to determine if an element of the drawing has been moved out of the bounds of 3D short integer space. This is what makes it so easy to write special effects functions to create animations from frames and frame sets. Take a look at LaserBoy_frame_effects.cpp and LaserBoy_frame_set_effects.cpp. One of the reasons I offered the code in open source was so that other people could use it and it's structure and methodology could become a kind of standard. If you are writing code to read and write ILDA and DXF then you might as well learn about the LaserBoy WAVE structures! It is actually quite similar to the ILDA format, accept it is usually optimized for display and it is a standard wave that can be played by any wave player that can read multi-channel waves. |
26.06.2012, 21:56 | 113 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
James Lehman, исходный код LaserBoy-я я пока не смотрел. Чтобы сделать чтение и запись ILDA-файлов, мне хватило спецификации ILDA-стандарта и твоих примечаний на http://laserboy.org/formatt/
На данный момент я хочу довести программу до такого минимально рабочего состояния, чтобы она умела помещать ilda-файлы с эффектами на timeline-дорожки, редактировать настройки элементов на timeline-дорожках и экспортировать проект в ILDA-файл. Пока что можно перетаскивать ilda-файлы на дорожки и экспортировать всё что получилось в ild (но без эффектов). Добавлено через 2 минуты Кроме того, я не уверен, что моя программа будет свободной и открытой (open source). Поэтому мне совесть не позволяет подглядывать в исходники твоей программы |
27.06.2012, 04:20 | 114 |
Увлеченный
Регистрация: 22.05.2012 Последняя активность: 02.12.2015 21:10
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Oh!
You can peek a little! I really understand and respect your enthusiasm. But I must also admit I have been looking for all these years for some collaboration! I love LaserBoy. It is a place for me. It makes so much sense! I really want other people to go there and explore. I want to make it better than what I could do all by myself. I want other people to see the order, the correctness and the utility of a well designed system. There is so much I'd like to add to it, but I get bored and lonely all by myself. I guess that sounds really weird. I love C++ ! |
27.06.2012, 08:54 | 115 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
James Lehman, уговорил. Я буду периодически заглядывать в код LaserBoy-я, когда в этом возникнет необходимость
|
29.06.2012, 08:17 | 116 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Может кто подскажет... Во многих ILD-файлах замечаю такую вещь: вместо того, чтобы нарисовать одну простую линию, в этих файлах рисуется много мелких линий, которые лежат на одной линии. С какой целью это делается? Ведь они добавляют много лишних ненужных точек в картинку.
|
29.06.2012, 08:46 | 117 |
Увлеченный
Регистрация: 22.05.2012 Последняя активность: 02.12.2015 21:10
Сообщений: 96
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
That is a very good question!
It is a matter of controlling velocity for the scanners. Unfortunately this is an area of very little common knowledge. You probably know that most laser DACs output the image in points-per-second. Quite a bit of ILDA art that you find is somewhat optimized. That is to say there are a lot of points along all the lines so that the scanners don't have to jump too far to get from one point to the next. There is no exact science to any of it. And you will not find any kind of standards as to how to do it in the ILDA file format specification. Think about it. Before diode lasers, gas lasers were extremely expensive and this was not something people could afford as a hobby. So there were very few systems for laser projection control. The few that exist have their own ways of doing things and that is all very much a secret. That is why none of this is part of any kind of standard. It's also why ILDA doesn't really want any kind of useful standards. If you open these files in LaserBoy, you can strip out all the extra points. LaserBoy can identify all points along a straight line and clean up the line to be just the first and the last point. LaserBoy can also add points of equal distance along any line for better optimization. The ILDA file specification says something about optimization points but offers nothing about how to do it or what the timing should be or anything. And as you probably know there is no way to record any of this in the ILDA file format. As you might figure, it all has to do with the sample rate of the DAC and the scan angle of the scanners. Points per second doesn't tell you anything about the actual resulting velocity of the scanners in radians per second. The information LaserBoy stores in the header of a wave file aims to rectify this situation. It tells you everything about the maximum velocity of the scanners and all of the other factors that went into optimizing the data stored in the wave. |
30.06.2012, 09:05 | 118 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
James Lehman, спасибо за ответ! Пока мало что понятно, но думаю, со временем разберусь
|
01.07.2012, 15:10 | 119 |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
Выкладываю скриншот, как оно сейчас выглядит, для затравки
Вариант, правда, пока что практически не рабочий. |
01.07.2012, 16:20 | 120 |
Увлеченный
|
Сталкиваюсь почти в каждой программе, сейчас почти все мониторы широко форматные, расположенные друг над другом и экран просмотра и монтажка очень неудобно. Лучше окно просмотра делать отдельно,в идеале с возможность масштабирования.
|