Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Photometric Proposal #183

Merged
merged 31 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
884877a
Initial Commit here
moritzstaffel Mar 14, 2024
bbdb595
Update gdtf-spec.md
moritzstaffel Mar 14, 2024
5c5c87a
Update gdtf-spec.md
moritzstaffel Mar 14, 2024
1d8122b
Create proposal.md
moritzstaffel Mar 14, 2024
7e51925
Update proposal.md
moritzstaffel Apr 4, 2024
1e85f14
Add example
moritzstaffel Apr 4, 2024
19584d3
Add the actual file
moritzstaffel Apr 4, 2024
c83ece5
Add more info here
moritzstaffel Apr 4, 2024
bf59ab4
Add the channel set values
moritzstaffel Apr 4, 2024
c7f18f6
Add other proposal
moritzstaffel Apr 4, 2024
9a9a0ef
Update proposal.md
moritzstaffel Apr 4, 2024
e17ddfd
Update proposal.md
moritzstaffel Apr 4, 2024
88d02d8
Update
moritzstaffel Apr 10, 2024
2219f42
Merge branch 'next' into aes-files
moritzstaffel Apr 17, 2024
d6a599e
Update this here as well
moritzstaffel Apr 18, 2024
9c13ff2
Also add this here
moritzstaffel Apr 18, 2024
c0e5cd2
Add more stuff here
moritzstaffel Apr 18, 2024
a4e6a33
Merge branch 'next' into aes-files
moritzstaffel Apr 18, 2024
69e1224
Merge branch 'next' into aes-files
moritzstaffel May 15, 2024
9d2b563
Rename here
moritzstaffel May 15, 2024
84adb4d
Update Usage here
moritzstaffel May 15, 2024
c82ec9c
Add more infos here
moritzstaffel May 15, 2024
c113ad0
Add more info here
moritzstaffel May 15, 2024
e70d588
Add more to references here
moritzstaffel May 15, 2024
3c2c98b
Update proposal.md
moritzstaffel May 22, 2024
c4c0b73
Update nameing here
moritzstaffel May 28, 2024
1812f72
Update naming here
moritzstaffel May 29, 2024
6dd36b2
Delete unneeded stuff
moritzstaffel May 29, 2024
2119518
Add Node for PhotometricSet
moritzstaffel May 29, 2024
8c21b49
Merge branch 'next' into aes-files
moritzstaffel May 29, 2024
a3d49cb
Update proposal.md
moritzstaffel Jun 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions gdtf-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,8 @@ all firmware revisions of the device.
./models/svg_side/yoke.svg
./models/svg_front/base.svg
./models/svg_front/yoke.svg
./photometric/lamp1.ies
./photometric/lamp1.ldt

```

Expand Down Expand Up @@ -1386,6 +1388,7 @@ the Beam are specified in [table 41](#user-content-table-41 ).
| BeamType | [Enum](#user-content-attrtype-enum ) | Beam Type; Specified values: "Wash", "Spot", "None", "Rectangle", "PC", "Fresnel", "Glow". Default value "Wash"
| ColorRenderingIndex | [Uint](#user-content-attrtype-uint ) | The CRI according to TM-30 is a quantitative measure of the ability of the light source showing the object color naturally as it does as daylight reference. Size 1 byte. Default value 100. |
| EmitterSpectrum | [Node](#user-content-attrtype-node ) | Optional link to emitter in the physical description; use this to define the white light source of a subtractive color mixing system or the color for the beam when no color mixing is defined. Starting point: Emitter Collect; Default spectrum is a Black-Body with the defined ColorTemperature. |
| Photometric | [Resource](#user-content-attrtype-resource ) | Optional. File name without extension and without subfolder containing description of the IES or EULUMDAT file in the subfolder `./photometric/`. |

</div>

Expand Down Expand Up @@ -1582,6 +1585,7 @@ for these geometries.
| Position | [Matrix](#user-content-attrtype-matrix ) | Relative position of geometry; Default value: Identity Matrix |
| Geometry | [Name](#user-content-attrtype-name ) | Name of the referenced geometry. Only top level geometries are allowed to be referenced. |
| Model | [Name](#user-content-attrtype-name ) | Optional. Link to the corresponding model. The model only replaces the model of the parent of the referenced geometry. The models of the children of the referenced geometry are not affected. The starting point is Models Collect. If model is not set, the model is taken from the referenced geometry. |
| Photometric | [Resource](#user-content-attrtype-resource ) | Optional. File name without extension and without subfolder containing description of the IES or EULUMDAT file in the subfolder `./photometric/`. The Photometric only replaces the Photometric of the parent of the referenced geometry. The Photometric of the children of the referenced geometry are not affected. The starting point is Models Collect. If Photometric is not set, the Photometric is taken from the referenced geometry. |


</div>
Expand Down Expand Up @@ -1940,6 +1944,8 @@ currently defined XML attributes of channel function are specified in
| Min | [Float](#user-content-attrtype-float ) | Minimum Physical Value that will be used for the DMX Profile. Default: Value from PhysicalFrom |
| Max | [Float](#user-content-attrtype-float ) | Maximum Physical Value that will be used for the DMX Profile. Default: Value from PhysicalTo |
| CustomName | [String](#user-content-attrtype-string ) | Custom Name that can he used do adress this channel function with other command based protocols like OSC. Default: Node Name of the Channel function Example: Head_Dimmer.Dimmer.Dimmer |
| PhotometricFrom | [Resource](#user-content-attrtype-resource ) | Optional. IES or LDT file name without extension containing the spectral data for the start for the Active Channel Function for all Beams of the fixture. |
| PhotometricTo | [Resource](#user-content-attrtype-resource ) | Optional. IES or LDT file name without extension containing the spectral data for the end for the Active Channel Function for all Beams of the fixture. |



Expand Down Expand Up @@ -2008,6 +2014,29 @@ are specified in [table 62](#user-content-table-62 ).

The subchannel set does not have any children.

###### PhotometricSet

This section defines the PhotometricSets of the channel function (XML node
<PhotometricSet>). The currently defined XML attributes of the PhotometricSet
are specified in [table 62](#user-content-table-62 ).

<div id="table-62">

#### Table 62. *PhotometricSet Attributes*

| XML Attribute Name | Value Type | Description |
|----|----|----|
| Beam | [Name](#user-content-attrtype-name ) | Optional link to the Beam Geometry this is for |
AndriiVoitenko marked this conversation as resolved.
Show resolved Hide resolved
| DMXFrom | [DMXValue](#user-content-attrtype-dmxvalue ) | Start DMX value; The end DMX value is calculated as a DMXFrom of the next PhotometricSet – 1 or the maximum value of the current channel function; Default value: 0/1 |
| PhotometricFrom | [Node](#user-content-attrtype-node) | Photometric start value to start interpolating to. function. |
| PhotometricTo | [Node](#user-content-attrtype-node) | Photometric end value. function. |


</div>

The PhotometricSet does not have any children.


#### Relation Collect

##### General
Expand Down
220 changes: 220 additions & 0 deletions proposal/light-distribution-proposal/proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
# Support for more Photometric Data in MVR and GDTF

## Linked Issue


# Problem

We want to add the option to define the light distribution for fixtures inside the beam of the fixture. In simple works, this file define how even the light inside a beam is distributed.

# Proposal


## GDTF

### New Attribute Photometric

We will add attribute `Photometric` to the Beam Geometry. This defines the default light distribution for the fixture.
We will add attribute `Photometric` to the Reference Geometry. This overwrites the default light distribution for the linked Beam.
Inside the `ChannelFunction` and the `SubChannelSet` we also will add this this attribute, so that the fixture can change the behavior depending on the current status of the fixture. This will also define a range.

When the `Photometric` is an attribute of the `ChannelFunction` it applies to all Beams, while when it is in a child node you can specify the beam it is for.

> **Note**
> We are currently discussing how `Photometric` can be defined as child of a `ChannelFunction`

The rules are the following:
- When a Beam does not have `Photometric`, it will not be affected by any `Photometric` definition in the file (Allow LED rings to have no spectral data while the main light source have this and you still not need to use the `SubChannelSets`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...Allow LED rings to have no photometric data...

- Only one DMX Channel can have `Photometric` links inside their `ChannelFunction` or `SubChannelSet`.


Example Simple Fixture:

``` xml
<FixtureType>
<Geometries>
<Geometry
Name="Base" >
<Axis
Name="Yoke" >
<Axis Name="Head" >
<Beam Name="Beam" Photometric="sample_default_file"/>
</Axis>
</Axis>
</Geometry>
</Geometry>
</Geometries>
<DMXModes>
<DMXMode Description="" Geometry="Base" Name="Mode 1">
<DMXChannels>
<DMXChannel Geometry="Beam" >
<LogicalChannel >
<ChannelFunction Attribute="Zoom" DMXFrom="0/1" Name="Zoom 1" PhysicalFrom="45" PhysicalTo="5" PhotometricFrom="sample_default_file" PhotometricTo="narrow_file"/>
<ChannelSet DMXFrom="0/1" Name="Wide" />
<ChannelSet DMXFrom="1/1" />
<ChannelSet DMXFrom="255/1"/>
</ChannelFunction>
</LogicalChannel>
</DMXChannel>
</DMXChannels>
<Relations/>
<FTMacros/>
</DMXMode>
</DMXModes>
</FixtureType>
```
## Multi Beam defining

When a device has multiple beams, that need different Photometric files, we need to assign the files per Beam. This could be done either as a child of the `ChannelFunction`, or as a child of the `ChannelSet`.

When using the `ChannelSet`, we can use the DMX ranges from the `ChannelSet`. But we are also forced to use existing structure of `ChannelSet` or even create `ChannelSet` just for this propose.
When using the `ChannelFunction`, we need to also define a DMX range here. The requirements for the DMX range for channel set also applies for the `<Photometric>` node.

#### Option A: Use Children of the Channel Set to make multi Beam assign

Example Two Beam Fixture:

``` xml
<FixtureType>
<Geometries>
<Geometry
Name="Base" >
<Axis
Name="Yoke" >
<Axis Name="Head" >
<Beam Name="Beam1" Photometric="sample_default_file1"/>
<Beam Name="Beam2" Photometric="sample_default_file2"/>
</Axis>
</Axis>
</Geometry>
</Geometry>
</Geometries>
<DMXModes>
<DMXMode Description="" Geometry="Base" Name="Mode 1">
<DMXChannels>
<DMXChannel Geometry="Yoke" >
<LogicalChannel >
<ChannelFunction Attribute="Zoom" DMXFrom="0/1" Name="Zoom 1" PhysicalFrom="45" PhysicalTo="5">
<ChannelSet DMXFrom="0/1" Name="Wide" >
</ChannelSet>
<ChannelSet DMXFrom="1/1" >
<ChannelSetPhotometric
Beam="Beam1"
PhotometricFrom="sample_default_file1"
PhotometricTo="narrow_file1"
/>
<ChannelSetPhotometric
Beam="Beam2"
PhotometricFrom="sample_default_file2"
PhotometricTo="narrow_file2"
/>

</ChannelSet>
<ChannelSet DMXFrom="255/1" Name="Narrow">
<ChannelSetPhotometric
Beam="Beam1"
PhotometricFrom="narrow_file1"
PhotometricTo="narrow_file1"
/>
<ChannelSetPhotometric
Beam="Beam2"
PhotometricFrom="narrow_file2"
PhotometricTo="narrow_file2"
/>

</ChannelSet>
</ChannelFunction>
</LogicalChannel>
</DMXChannel>
</DMXChannels>
<Relations/>
<FTMacros/>
</DMXMode>
</DMXModes>
</FixtureType>
```

#### Option B: Use Children of the Channel Function to make multi Beam assign


``` xml
<FixtureType>
<Geometries>
<Geometry
Name="Base" >
<Axis
Name="Yoke" >
<Axis Name="Head" >
<Beam Name="Beam1" Photometric="sample_default_file1"/>
<Beam Name="Beam2" Photometric="sample_default_file2"/>
</Axis>
</Axis>
</Geometry>
</Geometry>
</Geometries>
<DMXModes>
<DMXMode Description="" Geometry="Base" Name="Mode 1">
<DMXChannels>
<DMXChannel Geometry="Yoke" >
<LogicalChannel >
<ChannelFunction Attribute="Zoom" DMXFrom="0/1" Name="Zoom 1" PhysicalFrom="45" PhysicalTo="5">

<ChannelSet DMXFrom="0/1" Name="Wide" />
<ChannelSet DMXFrom="1/1" />
<ChannelSet DMXFrom="255/1" Name="Narrow"/>

<PhotometricSet
Beam="Beam1"
DMXFrom="0/1"
PhotometricFrom="sample_default_file1"
PhotometricTo="narrow_file1"
/>
<PhotometricSet
Beam="Beam2"
DMXFrom="0/1"
PhotometricFrom="sample_default_file2"
PhotometricTo="narrow_file2"
/>

<PhotometricSet
Beam="Beam1"
DMXFrom="255/1"
PhotometricFrom="narrow_file1"
PhotometricTo="narrow_file1"
/>
<PhotometricSet
Beam="Beam2"
DMXFrom="255/1"
PhotometricFrom="narrow_file2"
PhotometricTo="narrow_file2"
/>

</ChannelFunction>
</LogicalChannel>
</DMXChannel>
</DMXChannels>
<Relations/>
<FTMacros/>
</DMXMode>
</DMXModes>
</FixtureType>
```

#### Challenges
- How do we handle multiple beam in one fixture
- Multi LED Strip Light (Challenge is how you measure device)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you can control a single pixel, the Photometric Data must be for that pixel. This is done by the data provider (device manufacturer) by taking the overall photometric measurement of the whole device and diving it, to provide data only for that particular pixel.

- Multi LED Wash Light (You want to measure all at once, but represent the beam as one)
- LED Ring and normal beam (You only need the beam as IES file)
- Multi head fixtures (You need for each an individual beam, and it also needs to change)

- Only one IES file (or and interpolation between two IES files) can be active. This is challenging when multiple Attributes have effects on the light output.

- Do we need to add measurement instruction to the GDTF spec or only reference the IES spec.
- You measure devices in such a distance that the actual shape of the device has no influence on the measurement. For strip lights, this means a big distance. Not all can measure strip lights at such distance. The distance that IES recommends is 7x the beam diameter.


## MVR

Currently there will be no impact on the MVR.


Loading