View Issue Details

IDProjectCategoryView StatusLast Update
0005266DarkRadiantMap Editingpublic03.02.2021 17:27
Reporterangua Assigned Togreebo  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product Version2.6.0 
Target Version2.12.0Fixed in Version2.12.0 
Summary0005266: Twosided models can only be selected from one side
DescriptionWe have a few models (ivy and other plants for example) that consist of faces with twosided textures. In 3d view they can only be selected when the camera is facing the front of the face, in 2d view only when the front side is facing up.
Also, the red overlay on selected models is only visible from one side.
Steps To ReproduceOpen ivy.map
the model can not be selected by shift - click in 3d and 2d view.
TagsNo tags attached.

Activities

angua

angua

28.05.2020 07:51

manager  

ivy.map (303 bytes)   
Version 2
// entity 0
{
"classname" "func_static"
"name" "func_static_1"
"model" "models/darkmod/nature/ivy_part01b.lwo"
"origin" "-1754.42 595.205 -120.379"
"rotation" "-0.0628088 -0.874697 -0.480582 -0.140191 0.484491 -0.86349 0.98813 0.0131378 -0.153057"
"skin" "ivy_darker"
"solid" "0"
}
ivy.map (303 bytes)   
Judith

Judith

11.07.2020 20:34

reporter   ~0012648

Twosided is a material keyword for the engine, it doesn't change anything in displaying model in DR. If you want actual geometry to have two sides, you need to duplicate and flip polygons in modeling software.
greebo

greebo

30.01.2021 06:10

administrator   ~0013569

I suppose it's clear what the twosided keyword is doing. This issue is about the selection behaviour in DR; it's counter-intuitive since you can see the surface but it doesn't respond to clicks if you're unlucky.
greebo

greebo

30.01.2021 06:12

administrator   ~0013570

This map file has the camera already positioned such that clicks fail to select the model.
ivy.mapx (1,065 bytes)   
<?xml version="1.0" encoding="utf-8"?>
<map version="1" format="portable">
  <layers>
    <layer id="0" name="Default"/>
  </layers>
  <selectionGroups/>
  <selectionSets/>
  <properties>
    <property key="EditTimeInSeconds" value="23"/>
    <property key="LastCameraAngle" value="-3.3 19.8 0"/>
    <property key="LastCameraPosition" value="-1924.65 515.509 -84.7834"/>
  </properties>
  <entity number="0">
    <primitives/>
    <keyValues>
      <keyValue key="classname" value="func_static"/>
      <keyValue key="name" value="func_static_1"/>
      <keyValue key="model" value="models/darkmod/nature/ivy_part01b.lwo"/>
      <keyValue key="origin" value="-1754.42 595.205 -120.379"/>
      <keyValue key="rotation" value="-0.0628088 -0.874697 -0.480582 -0.140191 0.484491 -0.86349 0.98813 0.0131378 -0.153057"/>
      <keyValue key="skin" value="ivy_darker"/>
      <keyValue key="solid" value="0"/>
    </keyValues>
    <layers>
      <layer id="0"/>
    </layers>
    <selectionGroups/>
    <selectionSets/>
  </entity>
</map>
ivy.mapx (1,065 bytes)   

Related Changesets

DarkRadiant: master 9a672a41

2021-01-30 07:31:16

greebo

Details Diff
0005266: Add two unit tests trying to select a twosided model surface in the XY top view, one model is facing up, one model is facing down. Affected Issues
0005266
mod - test/Selection.cpp Diff File
add - test/resources/tdm/maps/twosided_ivy.mapx Diff File
add - test/resources/tdm/materials/twosided.mtr Diff File
add - test/resources/tdm/models/twosided_ivy.lwo Diff File

DarkRadiant: master f66f124e

2021-01-31 05:11:17

greebo

Details Diff
0005266: Move some camera matrix code to libs/render/CameraView.h, to be re-used by the unit test code. Affected Issues
0005266
add - libs/render/CameraView.h Diff File
mod - radiantcore/camera/Camera.cpp Diff File
mod - tools/msvc/libs.vcxproj Diff File
mod - tools/msvc/libs.vcxproj.filters Diff File

DarkRadiant: master 235b1a9e

2021-01-31 08:10:42

greebo

Details Diff
0005266: Rearrange the SelectionTest fixture to OrthoViewSelectionTest and CameraViewSelectionTest, add test cases Affected Issues
0005266
mod - test/Selection.cpp Diff File

DarkRadiant: master f05ee065

2021-01-31 18:12:37

greebo

Details Diff
0005266: More test cases, covering patches, brushes and model surfaces with one- and two-sided materials. Affected Issues
0005266
mod - test/Selection.cpp Diff File
mod - test/resources/tdm/maps/selection_test.map Diff File
mod - test/resources/tdm/maps/twosided_ivy.mapx Diff File
mod - test/resources/tdm/materials/twosided.mtr Diff File
add - test/resources/tdm/skins/selection_test.skin Diff File

DarkRadiant: master 1e546235

2021-02-03 17:15:51

greebo

Details Diff
0005266: Pass the two-sided flag only if the material is actually two-sided (exception: brush faces should always be treated like they're twosided due to 0005444).
Adjusted the cull type determination code in SelectionVolume::BeginMesh.
Affected Issues
0005266, 0005444
mod - libs/selection/SelectionVolume.h Diff File
mod - radiantcore/brush/BrushNode.cpp Diff File
mod - radiantcore/model/picomodel/StaticModel.cpp Diff File
mod - radiantcore/model/picomodel/StaticModelSurface.cpp Diff File
mod - radiantcore/model/picomodel/StaticModelSurface.h Diff File
mod - radiantcore/patch/PatchNode.cpp Diff File

Issue History

Date Modified Username Field Change
28.05.2020 07:51 angua New Issue
28.05.2020 07:51 angua File Added: ivy.map
11.07.2020 20:34 Judith Note Added: 0012648
30.01.2021 06:10 greebo Status new => confirmed
30.01.2021 06:10 greebo Note Added: 0013569
30.01.2021 06:12 greebo Note Added: 0013570
30.01.2021 06:12 greebo File Added: ivy.mapx
03.02.2021 17:24 greebo Assigned To => greebo
03.02.2021 17:24 greebo Status confirmed => assigned
03.02.2021 17:25 greebo Product Version => 2.6.0
03.02.2021 17:25 greebo Target Version => 2.12.0
03.02.2021 17:26 greebo Changeset attached => DarkRadiant master 9a672a41
03.02.2021 17:26 greebo Changeset attached => DarkRadiant master f66f124e
03.02.2021 17:26 greebo Changeset attached => DarkRadiant master 235b1a9e
03.02.2021 17:26 greebo Changeset attached => DarkRadiant master f05ee065
03.02.2021 17:26 greebo Changeset attached => DarkRadiant master 1e546235
03.02.2021 17:27 greebo Status assigned => resolved
03.02.2021 17:27 greebo Resolution open => fixed
03.02.2021 17:27 greebo Fixed in Version => 2.12.0