py -3.11 -m pip install cffi
py -3.11 -m pip install numpy
Note that the .sln provided is for easy editing and searching of files on Windows. The blender code builds on the command line rather than in the solution file. Visual Studio does provided support for debugging Python when you attach to the running Blender process with loaded addon.
There is ThirdParty repository included to the project as a submodule. Please update submodules:
Plugin includes 4 submodules: RadeonProRender SDK: git@github.com:Radeon-Pro/RadeonProRenderSDK.git
Shared components Image Processing Library: git@github.com:Radeon-Pro/RadeonProImageProcessingSDK.git
ThirdParty components and miscellaneous tools git@github.com:Radeon-Pro/RadeonProRenderThirdPartyComponents.git
All of them are included via SSH protocol. You will need to create and install SSH keys https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh
Once SSH keys are installed update/checkout submodules for active branch
git submodule update --init -f --recursive
Aim is to conform to pep8. At minimum it's 4 spaces for indentation, sources are utf-8, there's .gitconfig in the root of the project - please set you editor to use it(for most simplicity). E.g. PyCharm(recommended!) default setting are fine and seems that it also picks up .editorconfig automatically also, Tortoise Merge has a checkbox 'Enable EditorConfig', for Visual Studio there's EditorConfig extension
Git - we try to avoid merge commits, easiest way to do it:
git config [--global] merge.ff only
# this one rejects merges that would result in merge commit
git config [--global] pull.rebase true
# converts pull to do, essentially, fetch&rebase
Also, make more meaningful commits(one commit per feature) the easy way:
git merge <branch> --squash
# this will create a single change set from multiple commits coming from
run build.py
to build.
Example:
set BLENDER_EXE="C:\Program Files\Blender Foundation\Blender 2.93\blender.exe" && run_blender_with_rpr.cmd
Using python's 'logging' module underneath, rprblender.utils.logging has functions similar to logging. It also includes callable class Log which provides simplified interface to do logging. Example: from rprblender.utils import logging log = logging.Log(tag='export.mesh')
log("sync", mesh, obj)
e.g. logging.debug(*argv, tag)
where argv is what is printed(same as with print) and tag is string suffix for logger name, for filtering
so that logging.limit_log(name, level_show_always)
will allow to filter out what doesn't start with name
(expect levels equal or above level_show_always
)
configdev.py(loaded very early) can be used to include code like limit_log
to configure your session
from .utils import logging
logging.limit_log('default', logging.DEBUG)
from . import config
config.pyrpr_log_calls = True # log all Core function calls to console, can be VERY useful
#pragma optimize( "", off )
) import pydevd; pydevd.settrace('localhost', port=52128, stdoutToServer=True, stderrToServer=True, suspend=False)
build_installer.py <build_folder>
. Where build_folder
is some separate location - it will clone needed repos(if not already), reset then to needed branch and build installer. Byt default it builds windows installer on master. git tag builds/x.y.zz
git push --tags
src/rprblender/__init__.py
Get pycharm-blender. See instructions on the github page or, in short,
run pypredef_gen.py
from Blender itself or using command line, e.g. blender --python pypredef_gen.py
,
add "pypredef" folder path that this script creates to you PyCharm Interpreter paths, find paths settings under File | Settings(or Default Settings) | Project Interpreter
Increase max file size for Pycharm intellisence(bpy.py generated is huge), go to Help | Edit Custom VM Options
and add the following line:
-Didea.max.intellisense.filesize=5000000
Restart PyCharm
Install python extension in Visual Studio
Create new project from existing python code: Menu -> File -> New -> Project -> Python tab -> From Existing Python Code
Add following Search Paths to project:
Get Blender-VScode-Debugger plugin for Blender from https://github.com/Barbarbarbarian/Blender-VScode-Debugger
Install plugin Blender_VScode_Debugger.py in Blender: Menu -> File -> User Preferences -> Click "Install Add-on from file" -> Select Blender_VScode_Debugger.py -> Click "Install Add-on from file". New adddon "Development: Debugger for Visual Code" should be appeared
Enable "Development: Debugger for Visual Code" addon. Select "Path to PTVSD module": C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.2\
Click "Save User Settings"
In Blender: press
In VS: Menu -> Debug -> Attach To Process -> select Transport "Python remote (ptvsd)" -> type in Qualifier "my_secret@localhost:3000" -> click Refresh: process Blender.exe "tcp://localhost:3000" should be appeared -> select process -> click Attach
Remote debugging connection established.
The version number should be updated when a new plugin is released. This is done by editing the version field of the bl_info structure in the src/rprblender/init.py file. Currently a build script will update the build number when checkins happen to the master branch. So it is only necessary to update the major or minor number when required.