Thanks. I'll take a look. Looks like that we don't really need many of those flags. But that's how blender's existing scripts are done....
Wed, Sep 18
Sun, Sep 15
Added layer/material selector for UI/functionality consistency with other GPencil modifiers. Works after simple test.
Fixed stroke shrinking function for correct length handling. Now Length modifier in both relative and absolute mode works correctly, and they handles 0 length situations correctly.
Sat, Sep 14
No, this is stand-alone and don't need LANPR patch to run. I'll remove this from gp-object branch later.
Fri, Sep 13
Committed into master.
It doesn't crash for my tests, If you had more complex scene, a example file would help to check if the fix really worked. Thanks!
Here I provide a diff for the fix, After using blender -d, doesn't appear to have any moew memory leaks from my tests including multiple sample operations.
Thu, Sep 12
Removed MOD_Featureline.c. No longer needed.
A symbol problem in one of the python script. Fixed. Sorry...
Undone Freestyle changes.
Changed target material and layer selector from number into string selector.
Sun, Sep 8
Thu, Sep 5
Update on the fixes. This is still the LANPR bulk.
Wed, Sep 4
I'm posting the updated patch for Smooth Contour and some GP modifiers as sub tasks here. They do not directly interact with LANPR but they will be included anyway. Main part is still being fixing, hopefully be ready before the end of the week.
Aug 20 2019
Aug 18 2019
__m128d is double instead of double, but __m256d needs AVX support. I removed SIMD instructions for those and leave the optimization to the compiler. double version of the matrix is not frequently called, there should be little performance impact on this.
updated two finctions mul_m4_m4m4_db_uniq() and mul_m4db_m4db_m4fl_uniq() for __SSE2__ support.
Aug 16 2019
Aug 15 2019
OK. I'll add my double variants to BLI and keep them minimal. Then I'll provide a separate patch to be reviewed first. Thanks!
After some digging I found out that if I use 32bit float projection matrix, there will still be problems with calculation. This is because LANPR calculates occlusion on projected 2D space, not 3D ray tracing, so precision on the projection needs to be high in order to compensate the z resolution. So I might need to keep the double algorithm for longer time until I found out at which point the precision tolerance is the lowest.
Aug 14 2019
Sorry I wasn't sure why I clicked abandon? Reclaimed.
After some modifications, now LANPR completely uses BLI math functions, with several additions of double precision convenience functions.
Aug 11 2019
About double precision: LANPR CPU mode requires double precision to work properly. This is discovered the beginning of LANPR's development, single precision floats aren't enough to represent the necessary information needed. Maybe I can try to make some of them who have better tolerance into float instead of double.
Fix new line at the end of the files.
This patch contains only LANPR and other necessary modifications in order to run LANPR itself correctly.
AFAIK newer Intel graphics after core 6th gen CPUs are capable of OpenGL 4.x. Yes on my machine who has a 4th gen core i7 mobile processor, blender will nor run unless it uses nvidia video card.
I will add documents to length and multiply modifiers once they got included.
Aug 9 2019
what are the minimum specifications for using LANPR?
I tried a branch LANPR on windows 10 and both the radeon hd 7670 and the intel hd 4000, entering the LANPR engine, show me all black or transparent(both gpus work well with eevee)
sorry if i post this comment here
Modify the patch to include LANPR only.
Removed unrelated commits in GPencil engine.
Fixes including background transparency stuff.
Included recent fixes.
Jul 9 2019
Jul 5 2019
Yes, there's also a middle ground that we can make use of, instead only an on-off option.