trevorsandy / lpub3d

An LDraw™ editor for LEGO® style digital building instructions.
https://trevorsandy.github.io/lpub3d/
130 stars 19 forks source link

High contrast and Automate Edge lines do not work on certain systems #740

Closed jacovandermolen closed 10 months ago

jacovandermolen commented 10 months ago

Subject

High contrast, Automate Edge lines do not work on certain systems

Related to https://github.com/trevorsandy/lpub3d/issues/731 I know I said to let this problem go, but perhaps with this info and screenshots you can look in to it once more? I find it hard to accept that it does work fine on one laptop and not on 2 other PC's I use.

Environment

LPub3D_x86_64-2.4.7.75.3551_20230905 Windows 10

Configuration

Through LDConfig set edge lines of black parts to white:

0 // LEGOID 26 - Black 0 !COLOUR Black CODE 0 VALUE #1B2A34 EDGE #FFFFFF

LDConfig.ldr.txt

I have set up LPub config to use that specific LDConfig

LPub3DPrefs

Screenshots

LPub3D_x86_64-2.4.7.75.3551_20230905 shows me this:

Render

Though in setup I have automate edges on:

ProjectGlobalsSetup

PartsListGlobalsSetup

(studstyle High contast does work ;-)

Steps to reproduce

Load model car.ldr = fresh model with no LPub commands whatsoever. Clear caches, etc. Loads like screenshot above. In LPub3D_x86_64-2.4.6.84.3426_20230314 the 3D preview does show white edges on the black bricks!?

3DPreviewOK

Expected behaviour

I expect the edge line of black parts to be white. (and other dark color automate a light edge color for that matter)

Actual behaviour

Edge lines in the assembly and PLI are not white but still standard greyish.

Workaround

Use LPub3D 2.4.5 or earlier ;-)

Solution suggestion

No idea. I work with LPub and LDraw programs on multiple laptops and computers and on only one laptop the problem does not occur. I now have 2 Windows PC's that do not render as I expect, though it was working just fine before. The edge line for black part in LDCad (the editor) are white, set up through mentioned LDConfig.

Can this have anything to do with the hardware? Graphics card, monitor, ...? Or the way I have multiple local LPub instances on my harddrives, but all with their own unique local ini and setup?

trevorsandy commented 10 months ago

Thank you for reporting this behaviour.

I have set up LPub config to use that specific LDConfig I expect the edge line of black parts to be white.

It looks like there is a misunderstanding. You cannot have both Automate Edge Colors and High Contrast Stud Style selected at the same time. If you want white edge lines uncheck Automate Edge Color.

There is a control in the Project Global Setup that prompts you to select one option or the other. It looks like I did not add this control to all the locations where these settings are present.

AutomateEdgeColours_01

As you can see in the WhatsThis help - Automate Edge Colors will 'generate' the edge color based on the specified Settings... This most certainly means black parts will not have pure white edge lines. Moreover, the specified LDConfig file edge colors will not be respected.

You can also control which high-contrast color options are enabled through the Settings... dialogue.

AutomateEdgeColours_02

For example, if you desire white edge lines for black parts (without using custom LDConfig settings) but do not want dark stud cylinders, simply select high-contrast stud style (6) and uncheck Stud Cylinder Color.

Do not hesitate to let me know if you are experiencing other behaviour not addressed by this post.

Cheers,

trevorsandy commented 10 months ago

I took a look at the Parts List Global Setup and the control when selecting Automate Edge Color with High Contrast Stud Style already selected is in place. The message as indicated in the screenshot above should display.

When the situation is reversed - i.e. Automate Edge Colors is already checked and you select High Contrast Stud Style - you will see this message.

AutomateEdgeColours_03

Cheers,

jacovandermolen commented 10 months ago

Right. Then my expectations and thoughts are not correct.

Somehow, I decided to delete the LPub3D.ini file and start all over again. Surprise: render with high contrast works like I expect, but only in Perspective mode. Orthographic still looks not OK to me.

I have more findings but will post those later.

trevorsandy commented 10 months ago

I have more findings but will post those later.

Very well.

Cheers,

jacovandermolen commented 10 months ago

So, I tested on my laptop at home and the rendering is OK in both orthographic and perspective mode. Nice white edges on black parts and black edges on white parts and dark on all other colors.

In orthographic mode on my PC's at work, the lines are very thin, the antialiasing looks bad and the contrast is not good. The 3D preview renders fine.

I will post 2 screenshots here to compare.

Long story short: what I need and always want for my instructions is white edges on black parts and black edges on white parts and all other colors for that matter, LEGO style studs, sharp lines with smooth antialiasing. This can now only be achieved in perspective mode in the newer versions of LPub. I had to delete the LPub.ini file for that to work.

What I am looking for is this to work in orthographic mode on all machines I work on, for which I have no clue on how to get that to work, whatever combination of settings I use.

jacovandermolen commented 10 months ago

Compare version 2.4.7.x (left) and 2.4.5 (right). This is the same model file with the same settings. As you can see the images that 2.4.7 produces has less quality and no black edges on parts with other color than black. This is on 2 PC's at work with fresh local installations of LPub3D with ini files deleted and clean fresh LDraw files with no LPub meta commands.

My laptop at home produces the same image with 2.4.7 and 2.4.5...

Difference245vs247ortho

Difference245vs247orthoZoomed

trevorsandy commented 10 months ago

Thank you for sharing these details.

In orthographic mode on my PC's at work, the lines are very thin, the antialiasing looks bad and the contrast is not good. The 3D preview renders fine.

To be sure I well understand. The v2.4.7 renders on your work PC are unexpected only for the orthographic view ? Further, both the v2.4.7 work PC render and 3DView do not display edge line color and quality as expected for high contrast stud style ?

If my understanding is correct, then I'm inclined to think the problem is in rendering edge lines in general. I do recall changing the settings code for this so I'll take a look.

The challenge for me is that rendered and 3D images for v2.4.5 and v2.4.7 are both as expected - like on your home PC.

Cheers,

jacovandermolen commented 10 months ago

Yes, that is correct. Thanks a lot again for your patience and effort! It means a lot to me too to get this right ;-)

So far 2.4.7 is working good with buildmods and such.

trevorsandy commented 10 months ago

I looked over the code and could not find any default settings that would yield the behaviour you are seeing on your work PC. Furthermore, I tested 2.4.7r75 on 12-year-old hardware running Windows 10 and the results were as expected.

As I cannot reproduce this behaviour, at this point, the way forward seems to be to shoot-in-the-dark and hope to hit something.

I imagine I could produce some personal builds, which you could try on your work PC, that exclude changes I suspect may cause the behaviour you are seeing. However, rolling back old commits is not so easy and may cause unexpected collateral impacts.

Can you say something about the specs of your work PC ? For example, what version of OpenGL are you using ?

In LPub3D, you can see your OpenGL specs at Visual Editor->About Visual Editor - by LeoCAD... Here is an example:

DifferentRenderQuality_01

Cheers,

jacovandermolen commented 10 months ago

OK, I see. At work I seem to have either OpenGL 4.6.0 build 30.0.101.1340 on one PC and ...1339 on the other PC Different Graphic cards.

PC1 image PC2 image

I have to check at home.

For now I think we can definitely close this case since it seems too much work and effort to find a needle in a haystack. I can work on models and instructions on any machine, but I'll have to live with generating the PDF (or PNG's) on my laptop at home ;-)

Again, thanks for looking into it. I will continue to test other features and give you feedback.

jacovandermolen commented 10 months ago

Laoptop at home:

image