Repository navigation
import_gdsii: v1.0.4 - #56
Merged
Merged
Conversation
Rebuild the layer geometry on KLayout. The layout is read once and each layer is collected from all top cells with a recursive shape iterator, which resolves the hierarchy on the fly and makes the temporary merged GDS obsolete. The solid is assembled with numpy and handed to Blender as flat arrays, instead of letting bmesh extrude and clean up the mesh. A 1mm² design with 3.7M shapes imports in 18.9s instead of 59.4s, a 4mm² design with 22.7M shapes in 142.3s instead of 345.4s and 18.3GB instead of 55.0GB. gdstk is no longer bundled. Fix the import aborting or producing geometry that references missing vertices on a GDS with net names on its shapes. Dropping those properties also lets KLayout merge shapes that only differ in their net name. Fix faces with more than a few hundred corners being filled with overlapping triangles, which showed up as a haze over metal nets in a render. Expose the full Principled BSDF in the color schemas. Fields are named after Blender's own inputs, so "Base Color", "Metallic" or "Roughness" replace the previous color, metallic and roughness keys, and everything from Subsurface to Thin Film is reachable as well. The alpha channel of "Base Color" is copied to "Alpha" unless it is set explicitly, and a layer may point at a shared material instead of describing its own. Build the PDK list from the configs directory, so a custom PDK only needs its config file dropped next to the shipped ones. An optional "pdk_config" section gives it a name, a description and a default color schema, and "configs/_config_order.yaml" gives the order of the list. Add a tox lint environment running yamllint, flake8, pylint and the config schema check, and document the PDK and color schema configuration in the README. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
Contributor
Author
|
@Gerard-Taulats I would release a new version by end of this week. Do you have anything critical missing for this release? |
Contributor
|
Nah, nothing critical. As is it's already pretty good for me, being the remaining stuff I shared just chasing perfection. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebuild the layer geometry on KLayout. The layout is read once and each layer is collected from all top cells with a recursive shape iterator, which resolves the hierarchy on the fly and makes the temporary merged GDS obsolete. The solid is assembled with numpy and handed to Blender as flat arrays, instead of letting bmesh extrude and clean up the mesh. A 1mm² design with 3.7M shapes imports in 18.9s instead of 59.4s, a 4mm² design with 22.7M shapes in 142.3s instead of 345.4s and 18.3GB instead of 55.0GB. gdstk is no longer bundled.
Fix the import aborting or producing geometry that references missing vertices on a GDS with net names on its shapes. Dropping those properties also lets KLayout merge shapes that only differ in their net name.
Fix faces with more than a few hundred corners being filled with overlapping triangles, which showed up as a haze over metal nets in a render.
Expose the full Principled BSDF in the color schemas. Fields are named after Blender's own inputs, so "Base Color", "Metallic" or "Roughness" replace the previous color, metallic and roughness keys, and everything from Subsurface to Thin Film is reachable as well. The alpha channel of "Base Color" is copied to "Alpha" unless it is set explicitly, and a layer may point at a shared material instead of describing its own.
Build the PDK list from the configs directory, so a custom PDK only needs its config file dropped next to the shipped ones. An optional "pdk_config" section gives it a name, a description and a default color schema, and "configs/_config_order.yaml" gives the order of the list.
Add a tox lint environment running yamllint, flake8, pylint and the config schema check, and document the PDK and color schema configuration in the README.