Code Monkey home page Code Monkey logo

sdftool's Introduction

SDFTool

通过黑白图生成SDF图和SDF图集的小工具

功能介绍
SDF生成

第一部分用来使用8ssedt算法生成SDF图,并将生成的SDF进行插值,得到用于卡通渲染的阈值图。

使用案例:

  • 点击选择路径选择事先准备好的阈值图的路径:

image-20231201225115303

image-20231201225002686

  • 点击生成SDF,会在当前文件夹下生成一个output文件夹,在里面存储生成的SDF,插值生成的阈值图放在次级目录SDF里

image-20231201230133056

图集生成

第二部分的图集生成的功能很简单,把一些相同尺寸的贴图合成一张图集使用

  • 使用方式类似SDF生成,点击选择路径,选择存放贴图的路径:
  • 命名格式建议参考下图,命名为image_1_1这样,末尾以“_数字_数字”结尾

image-20231201231743952

  • 如果第一行贴图和最后一张贴图只准备了一张,如下图,记得勾选首行和末行只有一张图片

image-20231201232310521

image-20231201232140897

  • 图集最终分辨率是会在生成图集之后会按照这个分辨率重新插值一遍,比如上面我每张SDF贴图的分辨率都是1024,生成9x9的图集分辨率将会是9216x9216,有点太大了,所以用这个重新插值到4096x4096.
安装源码
项目介绍

首先先简单介绍一下这个小项目,方便你理解源码的安装步骤。

这个项目由三部分组成:项目的主要是用python写的,UI是使用QML写的,生成SDF的8ssedt算法是用c++写的。

所以想把项目跑起来主要需要安装好Pyside6等python的依赖和pybind11等c++的依赖。

C++部分

C++这边依赖于python,pybind11和opencv,需要把这三个东西安装好。

具体的安装流程可以参考下面链接里安装pybind11和opencv环境的教程:

https://blog.csdn.net/weixin_44244190/article/details/124977114

https://blog.csdn.net/CSDN_0007/article/details/106178140

项目的包含目录、库目录和附加依赖项可以参考我的设置(注意配置为Release):

image-20231201235601919

image-20231201235845913

image-20231201235928171

常规属性里注意配置类型选择dll,C++语言标准我选的是17

image-20231202000113950

高级属性把目标文件扩展名改为.pyd

image-20231202000223664

以上把python,pybind11和opencv都设置好了的话,右键项目点击生成应该可以下面的输出,生成的.pyd文件生成在x64\Release文件夹下

image-20231202000549504

image-20231202000829096

python部分

如果python使用pycharm开发,打开requirements.txt会自动给你在虚拟环境里安装好依赖

image-20231202001225303

上面的pyinstaller是用来打包exe用的,可以不用装

注意项目设置设置虚拟环境时,python解释器的版本要和c++那边一致,比如c++那边我使用的是python3.10,这边也是

image-20231202001413965

接下来注意main.py里的这几行代码:

image-20231202002045284

上面的第14行添加了SDF_Cpp.pyd的路径,用的是相对路径,所以下面import SDF_Cpp应该不会报错,但是第15这里我添加了opencv的dll的路径,这里使用的是绝对路径,你不改的话大概率会得到下面报错:

image-20231202002350702

这里推荐使用一个工具"Dependencies":

https://github.com/lucasg/Dependencies

使用这个工具打开C++生成的SDF_Cpp.pyd,可以看到这个pyd都依赖了哪些文件:

image-20231202003106141

os.add_dll_directory(r"E:\Material\code\C++\OpenCV\opencv\build\x64\vc16\bin")

替换上面opencv依赖目录路径为你的电脑里的路径。

sdftool's People

Contributors

yu-ki016 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar Che Lin avatar  avatar  avatar Unagi avatar  avatar Meteorite avatar dede avatar 黑衣诗 avatar bman avatar  avatar Xiaoying avatar jyc avatar  avatar  avatar  avatar  avatar Lee avatar kiithroen avatar  avatar  avatar  avatar Move avatar 薛红杰 avatar Neo Zheng avatar naoto-isobe avatar  avatar 2173 avatar  avatar Xela avatar LunarEclipse avatar  avatar  avatar bluerose avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.