View Issue Details

IDProjectCategoryView StatusLast Update
0005364DarkRadiantGUIpublic22.12.2020 17:51
ReporterJudith Assigned Toorbweaver  
PrioritylowSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
Platformx64OSWindowsOS Version7
Product Version2.8.0 
Target Version2.10.0Fixed in Version2.10.0 
Summary0005364: Better visual representation of light entities in views
DescriptionLights in DR have always been represented by a wireframe 'diamond' that uses the color value set up in a _color spawnarg. If you use a dark color scheme for DR (and I suppose many mappers do), finding lights in your map that have intensity below RGB 96 becomes a real problem. You can misplace a few lights this way, and finding them later or debugging light-related problems gets difficult.

How about giving our 'diamond' a permanent black wireframe or outline, and filling it with light _color value? Something along these lines.
Other engines typically use icons/sprites for entities, but I guess that sounds like a lot of work.
Steps To Reproduce- Go to View -> Colors
- Switch the color scheme to dark
- Place a light entity and change its color to RGB 64
- Deselect the light.
- Zoom out the view. Now try to find the light ;)
TagsNo tags attached.

Activities

Judith

Judith

22.10.2020 20:18

reporter   ~0012820

Example light.
Clipboard01.png (6,031 bytes)   
Clipboard01.png (6,031 bytes)   
orbweaver

orbweaver

25.10.2020 15:09

developer   ~0012827

Would it help if there was an option to disable colouring of light entities, and make them all a single colour (e.g. the bright magenta that was the default before we had per-light colouring)?
Judith

Judith

25.10.2020 16:51

reporter   ~0012828

I think that should work, yeah :)
orbweaver

orbweaver

22.12.2020 13:53

developer   ~0013175

Implemented in f7f1720bd3109909beea110ac0ed55e1d9d92bc6. A new checkbox in the View -> Colours dialog forces all light volumes to be rendered in the colour specified by the colour scheme, rather than varying on a per-light basis.

Related Changesets

DarkRadiant: master 45a25edb

2020-12-17 14:02:40

orbweaver

Details Diff
0005364: primitivise model parameter to TreeView::CreateWithModel()

Despite requiring a TreeModel::Ptr argument, CreateWithModel() never made any
use of either the shared_ptr or the TreeModel interface, since the passed
argument was immediately decomposed to a simple wxDataViewModel pointer. We now
pass the wxDataViewModel pointer directly, giving increased flexibility to code
which might want to use a TreeView with a simpler wxWidgets data model.
Affected Issues
0005364
mod - libs/wxutil/EntityClassChooser.cpp Diff File
mod - libs/wxutil/KeyValueTable.cpp Diff File
mod - libs/wxutil/TreeView.cpp Diff File
mod - libs/wxutil/TreeView.h Diff File
mod - libs/wxutil/fsview/FileSystemView.cpp Diff File
mod - plugins/dm.conversation/ConversationDialog.cpp Diff File
mod - plugins/dm.conversation/ConversationEditor.cpp Diff File
mod - plugins/dm.difficulty/DifficultyEditor.cpp Diff File
mod - plugins/dm.editing/AIHeadChooserDialog.cpp Diff File
mod - plugins/dm.editing/AIVocalSetChooserDialog.cpp Diff File
mod - plugins/dm.editing/MissionInfoEditDialog.cpp Diff File
mod - plugins/dm.gui/GuiSelector.cpp Diff File
mod - plugins/dm.gui/XDataSelector.cpp Diff File
mod - plugins/dm.gui/XdFileChooserDialog.cpp Diff File
mod - plugins/dm.objectives/ComponentsDialog.cpp Diff File
mod - plugins/dm.objectives/ObjectiveConditionsDialog.cpp Diff File
mod - plugins/dm.objectives/ObjectivesEditor.cpp Diff File
mod - plugins/dm.stimresponse/ClassEditor.cpp Diff File
mod - plugins/dm.stimresponse/ResponseEditor.cpp Diff File
mod - radiant/ui/commandlist/CommandList.cpp Diff File
mod - radiant/ui/common/ShaderSelector.cpp Diff File
mod - radiant/ui/eclasstree/EClassTree.cpp Diff File
mod - radiant/ui/einspector/EntityInspector.cpp Diff File
mod - radiant/ui/einspector/SkinChooser.cpp Diff File
mod - radiant/ui/entitylist/EntityList.cpp Diff File
mod - radiant/ui/filters/editor/FilterDialog.cpp Diff File
mod - radiant/ui/mapinfo/EntityInfoTab.cpp Diff File
mod - radiant/ui/mapinfo/LayerInfoTab.cpp Diff File
mod - radiant/ui/mapinfo/ModelInfoTab.cpp Diff File
mod - radiant/ui/mapinfo/ShaderInfoTab.cpp Diff File
mod - radiant/ui/modelselector/MaterialsList.cpp Diff File
mod - radiant/ui/particles/ParticleEditor.cpp Diff File
mod - radiant/ui/particles/ParticlesChooser.cpp Diff File
mod - radiant/uimanager/SoundChooser.cpp Diff File
mod - radiant/uimanager/SoundShaderPreview.cpp Diff File
mod - radiant/uimanager/animationpreview/MD5AnimationViewer.cpp Diff File
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.cpp Diff File
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.h Diff File

DarkRadiant: master 95db3b83

2020-12-17 15:06:47

orbweaver

Details Diff
0005364: ColourSchemeEditor now uses plain wxDataViewListCtrl

Simplify the ColourSchemeEditor implementation by moving away from the
heavyweight custom TreeModel/TreeStore and switching to a simple
wxDataViewListCtrl instead.
Affected Issues
0005364
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.cpp Diff File
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.h Diff File

DarkRadiant: master 597347ec

2020-12-18 13:22:04

orbweaver

Details Diff
0005364: initial 'Override light volume colour' option

Checkbox added underneath the list of colour schemes, but does not do anything
yet.
Affected Issues
0005364
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.cpp Diff File
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.h Diff File

DarkRadiant: master 7894a812

2020-12-18 13:50:06

orbweaver

Details Diff
0005364: connect 'Override light colour' to registry key

Checkbox initialised based on a new registry key and saves its value when
toggled.
Affected Issues
0005364
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.cpp Diff File
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.h Diff File

DarkRadiant: master d877f4db

2020-12-18 14:11:52

orbweaver

Details Diff
0005364: move some render code from Light into LightNode

Light and LightNode are so tightly bound they would be better off as one class
(witness the constant use of _light.blah() in LightNode and _owner.blah() in
Light). With this minor refactoring the call chain for rendering light volumes
is shortened slightly, so that renderWireframe() and renderSolid() in LightNode
now call a method renderLightVolume() on the same class, rather than delegating
to Light methods.

In addition, LightNode now implements OpenGLRenderable itself and submits *this
for rendering, rather than submitting _light. Note that LightNode::render()
only renders the light origin box, not the radius or frustum.

This is just a small step and there is still much rendering code in Light, as
well as use of Light's private members from LightNode's rendering methods.
Affected Issues
0005364
mod - include/icolourscheme.h Diff File
mod - radiantcore/entity/light/Light.cpp Diff File
mod - radiantcore/entity/light/Light.h Diff File
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File

DarkRadiant: master deaea8a6

2020-12-21 14:54:12

orbweaver

Details Diff
0005364: 'Override light colour' now working

If the checkbox is set, the LightNode::renderLightVolume() method uses the
EntityNode::_wireShader shader instead of the shader exposed by ColourKey
(which changes with the '_color' spawnarg).
Affected Issues
0005364
mod - include/icolourscheme.h Diff File
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.cpp Diff File
mod - radiantcore/entity/ColourKey.h Diff File
mod - radiantcore/entity/EntityNode.cpp Diff File
mod - radiantcore/entity/EntityNode.h Diff File
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File

DarkRadiant: master e357a35f

2020-12-22 13:28:13

orbweaver

Details Diff
Merge branch 'topic/single-colour-lights'

Merge completed 0005364 which adds a checkbox in the Colours dialog to force all
light volumes to be rendered with a single colour set by the colour scheme,
rather than changing colour based on the _color spawnarg.
Affected Issues
0005364
mod - include/icolourscheme.h Diff File
mod - libs/wxutil/EntityClassChooser.cpp Diff File
mod - libs/wxutil/KeyValueTable.cpp Diff File
mod - libs/wxutil/TreeView.cpp Diff File
mod - libs/wxutil/TreeView.h Diff File
mod - libs/wxutil/fsview/FileSystemView.cpp Diff File
mod - plugins/dm.conversation/ConversationDialog.cpp Diff File
mod - plugins/dm.conversation/ConversationEditor.cpp Diff File
mod - plugins/dm.difficulty/DifficultyEditor.cpp Diff File
mod - plugins/dm.editing/AIHeadChooserDialog.cpp Diff File
mod - plugins/dm.editing/AIVocalSetChooserDialog.cpp Diff File
mod - plugins/dm.editing/MissionInfoEditDialog.cpp Diff File
mod - plugins/dm.gui/GuiSelector.cpp Diff File
mod - plugins/dm.gui/XDataSelector.cpp Diff File
mod - plugins/dm.gui/XdFileChooserDialog.cpp Diff File
mod - plugins/dm.objectives/ComponentsDialog.cpp Diff File
mod - plugins/dm.objectives/ObjectiveConditionsDialog.cpp Diff File
mod - plugins/dm.objectives/ObjectivesEditor.cpp Diff File
mod - plugins/dm.stimresponse/ClassEditor.cpp Diff File
mod - plugins/dm.stimresponse/ResponseEditor.cpp Diff File
mod - radiant/ui/commandlist/CommandList.cpp Diff File
mod - radiant/ui/common/ShaderSelector.cpp Diff File
mod - radiant/ui/eclasstree/EClassTree.cpp Diff File
mod - radiant/ui/einspector/EntityInspector.cpp Diff File
mod - radiant/ui/einspector/SkinChooser.cpp Diff File
mod - radiant/ui/entitylist/EntityList.cpp Diff File
mod - radiant/ui/filters/editor/FilterDialog.cpp Diff File
mod - radiant/ui/mapinfo/EntityInfoTab.cpp Diff File
mod - radiant/ui/mapinfo/LayerInfoTab.cpp Diff File
mod - radiant/ui/mapinfo/ModelInfoTab.cpp Diff File
mod - radiant/ui/mapinfo/ShaderInfoTab.cpp Diff File
mod - radiant/ui/modelselector/MaterialsList.cpp Diff File
mod - radiant/ui/particles/ParticleEditor.cpp Diff File
mod - radiant/ui/particles/ParticlesChooser.cpp Diff File
mod - radiant/uimanager/SoundChooser.cpp Diff File
mod - radiant/uimanager/SoundShaderPreview.cpp Diff File
mod - radiant/uimanager/animationpreview/MD5AnimationViewer.cpp Diff File
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.cpp Diff File
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.h Diff File
mod - radiantcore/entity/ColourKey.h Diff File
mod - radiantcore/entity/EntityNode.cpp Diff File
mod - radiantcore/entity/EntityNode.h Diff File
mod - radiantcore/entity/light/Light.cpp Diff File
mod - radiantcore/entity/light/Light.h Diff File
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File

DarkRadiant: master f7f1720b

2020-12-22 13:47:43

orbweaver

Details Diff
0005364: set a tooltip on the 'Override light colour' checkbox Affected Issues
0005364
mod - radiant/uimanager/colourscheme/ColourSchemeEditor.cpp Diff File

Issue History

Date Modified Username Field Change
22.10.2020 20:04 Judith New Issue
22.10.2020 20:04 Judith Priority normal => none
22.10.2020 20:18 Judith Note Added: 0012820
22.10.2020 20:18 Judith File Added: Clipboard01.png
23.10.2020 07:43 Judith Priority none => low
23.10.2020 07:43 Judith Severity feature => tweak
23.10.2020 07:43 Judith Description Updated View Revisions
23.10.2020 12:22 greebo Status new => acknowledged
23.10.2020 12:48 greebo Severity tweak => feature
23.10.2020 12:48 greebo Summary Feature proposal: better visual representation of light entities in views => Better visual representation of light entities in views
23.10.2020 12:48 greebo Status acknowledged => confirmed
25.10.2020 15:09 orbweaver Note Added: 0012827
25.10.2020 16:51 Judith Note Added: 0012828
17.12.2020 13:19 orbweaver Assigned To => orbweaver
17.12.2020 13:19 orbweaver Status confirmed => assigned
22.12.2020 13:53 orbweaver Status assigned => resolved
22.12.2020 13:53 orbweaver Resolution open => fixed
22.12.2020 13:53 orbweaver Fixed in Version => 2.10.0
22.12.2020 13:53 orbweaver Note Added: 0013175
22.12.2020 13:55 orbweaver Target Version => 2.10.0
22.12.2020 17:51 orbweaver Changeset attached => DarkRadiant master 45a25edb
22.12.2020 17:51 orbweaver Changeset attached => DarkRadiant master 95db3b83
22.12.2020 17:51 orbweaver Changeset attached => DarkRadiant master 597347ec
22.12.2020 17:51 orbweaver Changeset attached => DarkRadiant master 7894a812
22.12.2020 17:51 orbweaver Changeset attached => DarkRadiant master d877f4db
22.12.2020 17:51 orbweaver Changeset attached => DarkRadiant master deaea8a6
22.12.2020 17:51 orbweaver Changeset attached => DarkRadiant master e357a35f
22.12.2020 17:51 orbweaver Changeset attached => DarkRadiant master f7f1720b